Contest.samsu.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Задача B. Брокколи

Задачу добавил: alef

Успешно сдано решений: 6

Компания Кеши Канарейкина в целях экономии расходов на питание сотрудников приняла решение сократить ежедневное меню до двух блюд каждого вида. Более того, политика фирмы, где заказывает обеды компания, такова, что заказ "большого" обеда для одного человека обходится дешевле, нежели заказ такого же набора продуктов для двух человек. Поэтому квиток на обед также решено было выдавать паре сотрудников.
Фирма, предоставляющая обеды, ввела недавно в свой ассортимент суп из брокколи и, чтобы привлечь внимание заказчиков к новому блюду, предлагает его со скидкой. Разумеется, руководство компании, где работает Кеша Канарейкин, не могло не обратить внимание на такое выгодное предложение. 
Более того, когда сотрудников попросили отметить, что в предложенном по "новым правилам" обеде им понравилось, оказалось, что новый суп понравился ровно половине сотрудников компании. Однако часть опросных листов была потеряна, и сохранилось только A листов с фамилиями сотрудников, которым суп понравился, и B листов с фамилиями сотрудников, которым суп не понравился. 
Ответственный за организацию обедов (работник фирмы, их предоставляющей) сотрудников компании выдает один квиток (в котором указано два разных супа) двум сотрудникам (которых он сам выбирает из общего списка). Если такой квиток попадает двум сотрудникам, которым понравился суп из брокколи, то они начинают спорить, кому этот суп достанется. Если же такой квиток достается двум сотрудникам, ни одному из которых этот суп не понравился, то они тоже начинают спорить. Такие споры отрицательно сказываются на эффективности работы компании. 
Ответственный за организацию обеда решил не проводить заново опрос, кому нравится, а кому не нравится новый суп, а действовать методом проб и ошибок. При этом он решил действовать осторожно и выдавать квиток паре сотрудников только в том случае, если ему известны предпочтения хотя бы одного человека в этой паре. 
Таким образом, он может формировать пару либо из двух известных, либо из одного известного и второго неизвестного.
если он формирует пару из двух известных, то он сразу отдает им квиточек
если он формирует пару из одного известного и одного неизвестного, он может ее "разъединить", даже если в этой паре один оказался любителем супа из брокколи, а другой его не любит. И, не отдавая им квиток, вызывать их (и других сотрудников) заново.

Полагая, что ответственный за организацию обедов старается действовать наилучшим образом, определите, каково будет наименьшее возможное среднее количество неудачных попыток, после которых он сможет распределить квитки таким образом, чтобы каждый из них достался паре, в которой один сотрудник любит суп из брокколи, а другой нет.

Формат входного файла input.txt
Первая строка - целое четное число N (1 <= N <= 1000) - количество сотрудников компании
Вторая строка - два целых числа A и B (0 <= A, B <= N/2) - количество сотрудников, которым нравится и не нравится суп из брокколи, соответственно. A + B > 0. 

Формат выходного файла output.txt
Первая строка - вещественное число - наименьшее возможное среднее количество неудачных попыток распределить квитки на обед между сотрудниками компании. Ответ должен отличаться от верного не более, чем на 10^-5.

Пример входного файла - 1
4
0 1

Пример выходного файла - 1
0.666666666666667

Пример входного файла - 2
4
1 1

Пример выходного файла - 2
0.500000000000000

Пример входного файла - 3
1000
1 1

Пример выходного файла - 3
479.698230325617830

Пояснение к примеру 1.
Ответственный предлагает талон единственному известному и произвольному. С вероятность 1/3 они спорят, и тогда вся группа лиц, которым не нравится суп из брокколи, известна. С вероятностью 2/3 ситуация переходит к пробному тесту 2. Итого 1/3 + 2/3*1/2 = 2/3

Рецепт:
На кочан брокколи среднего размера берется около 100 граммов мягкого сыра (рекомендуют бри) и немного (половина "черешка" стебля) лука-порея (можно заменить небольшой головкой обычного репчатого лука). В кастрюлю наливается (если оно растительное) или кладется (если сливочное) немного масла. Когда оно нагреется и растопится, туда кладется мелко порезанный лук и пассеруется примерно 5 минут (он должен не столько обжариться, сколько просто стать мягким). После этого в кастрюлю кладут разделенную на соцветия брокколи, заливают водой или бульоном и добавляют специи (если сыр достаточно соленый, возможно, солить не стоит). Жидкость должна быть ненамного выше уровня овощей. Суп доводится до кипения и варится около 15 минут (ножки брокколи должны стать мягкими). 
После этого суп нужно превратить в пюре (это можно сделать с помощью блендера), затем вновь поставить на огонь и добавить нарезанный сыр. Когда сыр растворится - суп готов.


Сдать задачу

Задать вопрос жюри по этой задаче