Этажи
시간 제한2초메모리 제한1024 MB
건물의 각 층에 같은 확률로 있다고 가정할 때, 일부 층에만 있는 표지판을 단서로 삼아 k층에 도달하기 위한 최소 기대 이동 횟수를 구한다.
문제
Артур Флек живет в очень старом доме: лифт не работает, а многие таблички с номерами этажей пришли в негодность. Артур очень устал и хочет поскорее попасть в свою квартиру.
В доме есть этажей, пронумерованных от до . Между соседними этажами можно перемещаться по лестнице. Артур живет на этаже с номером .
На некоторых этажах висят таблички с указанием номера этого этажа. Артур знает, что таблички присутствуют на этажах с номерами . Также известно, что на этажах с номерами и таблички есть.
Придя домой, Артур поднимался по лестнице, но задумался, и поэтому теперь он не знает, на каком этаже оказался. На каждом этаже он мог оказаться с вероятностью . Артур не отличает этажи друг от друга и может ориентироваться только по табличкам с номерами. В том числе, если на этаже номер нет таблички, он не может отличить его от остальных этажей без табличек. Он хочет совершить как можно меньше переходов между этажами, попасть на этаж с номером и быть уверенным, что он оказался на этаже с номером . Артур не очень сообразительный, поэтому пока он не дойдет до этажа с табличкой, он не может сделать никаких предположений о номере этажа, на котором сейчас находится.
Помогите Артуру найти оптимальную стратегию действий и определите математическое ожидание количества переходов между этажами, которое ему придется совершить.
입력
В первой строке даны три целых числа , и --- количество этажей в доме, этаж, на котором живет Артур, и количество этажей с табличками (; ).
Вторая строка содержит целых чисел --- номера этажей, на которых есть таблички. Гарантируется, что .
출력
Выведите единственное вещественное число --- математическое ожидание количества переходов между этажами, которое придется совершить Артуру, чтобы попасть на этаж с номером при оптимальной стратегии, если изначально он может находиться на любом этаже с одинаковой вероятностью.
Ответ будет засчитан, если его абсолютная или относительная погрешность не превышает .
힌트
В первом тесте, если Артур изначально находится на этаже с номером , или , он сразу знает номер текущего этажа, и его оптимальной стратегией будет пойти в правильном направлении до желаемого этажа . Если же Артур изначально находился на этаже номер , он не знает об этом, потому что на нем нет таблички. Одной из оптимальных стратегий в этом случае будет подняться на один этаж вверх, узнать, что Артур оказался на этаже номер , потому что на нем есть табличка, и спуститься обратно на один этаж. Поэтому, ответом будет .
Во втором тесте, если Артур оказался на этаже с номером , или , он знает его номер, и оптимальной стратегией будет просто пойти в правильном направлении до этажа с номером . Иначе, он оказался на этаже с номером или . В таком случае оптимальной стратегией будет спуститься на один этаж вниз. Если Артур был на этаже с номером , он попадет на этаж с номером , на котором висит табличка, поэтому дальше он просто сделает еще перехода и попадет на желаемый этаж номер . Если же Артур был на этаже номер , после перехода он окажется на этаже номер , на котором висит табличка, поэтому он поймет, что пришел на желаемый этаж, и больше никуда не пойдет. В этом случае математическое ожидание количества переходов будет .