У Валентина, ветерана спортивного программирования, много лет работавшего в программном комитете, было много дел. Велосипед был в ремонте, на работе нужно было решать проблемы с коллегами из Индии, а в университете — принимать зачёт по философским проблемам математики у пяти групп. И, в довершение всего, новый председатель программного комитета попросил Валентина написать альтернативное решение для одной из задач предстоящего соревнования.
Валентин был настолько занят, что у него совсем не было времени читать условие задачи. Он лишь посмотрел на формат вывода и понял, что в задаче нужно всегда выводить «YES» или «NO».
К счастью, Валентин очень хорошо знаком с проверяющей системой, которая используется для проведения соревнований. Система по очереди запускает решение на всех тестах задачи, а проверка на одном тесте происходит следующим образом. Входные данные копируются в файл input.txt. Затем запускается решение, читающее входные данные из файла input.txt и выводящее результат своей работы в файл output.txt. После этого правильный ответ копируется в файл answer.txt. Если содержимое файлов answer.txt и output.txt совпадает, то тест считается пройденным, иначе — нет.
Валентин решил написать программу, которая работает следующим образом. Если в папке, где лежит программа, нет файла answer.txt (то есть программа запускается на первом тесте), то программа выводит «YES». В противном случае программа выводит содержимое файла answer.txt.
Валентин планирует сказать председателю программного комитета, что написал решение с нетривиальной ошибкой, которая, к счастью, проявляется на прекрасных сильных тестах, составленных автором задачи. Однако для этого он должен оценить, сколько тестов не пройдёт его решение. У Валентина нет доступа к тестам, но он знает их общее количество и суммарный объём файлов с ответами. Помогите Валентину вычислить, сколько в среднем
тестов не пройдёт его решение, если известно, что файл с ответом «YES»
имеет размер 3 байта, а файл с ответом «NO» — размер 2 байта, и все варианты порядка тестов считаются равновероятными.
Исходные данные
В единственной строке через пробел записаны целые числа n и s
(1 ≤ n ≤ 5000; 2n ≤ s ≤ 3n) — количество тестов задачи и суммарный размер файлов с ответами соответственно.
Результат
Выведите среднее количество тестов, которое не пройдёт решение Валентина,
с точностью не менее 10−5.
Пример
исходные данные | результат |
---|
3 7 | 2.0000000 |
Замечания
Один из трёх ответов на тесты — «YES», а два — «NO». Если тесты будут идти в порядке «YES-NO-NO», то программа Валентина не пройдёт только второй тест, если порядок будет «NO-YES-NO», то она не пройдёт ни один тест, а если «NO-NO-YES», то она не пройдёт первый и третий тесты.
Автор задачи: Александр Пронченков (подготовка — Даниил Айзенштейн)
Источник задачи: NEERC 2009, Четвертьфинал Восточного подрегиона