게임 쇼 탈락
시간 제한8초메모리 제한2048 MB
참가자 n명이 각자 구간 [i, i+k]에서 뽑은 실수 점수로 매주 경쟁하고, 1등이 2등을 탈락시킵니다. 각 참가자의 기대 순위를 구합니다.
문제
당신은 탈락 방식의 게임 쇼를 운영하고 있다. 참가자는 한 명씩 탈락하며, 마지막 한 명이 남을 때까지 계속된다. 참가자에 대해 알고 있는 정보를 바탕으로 결과를 예측한다.
매주 남은 참가자들이 경기를 치른다. 각 참가자의 점수는 그 참가자 고유의 실력 범위 안에서 정해지는 무작위 실수이다. 점수가 높은 순서대로 순위가 매겨진다. 점수는 실수이므로 동점이 될 확률은 0이다.
이번 주 경기의 우승자가 탈락자를 고른다. 모든 참가자는 자신 다음으로 잘한 사람을 골라야 한다고 생각하므로, 우승자는 항상 2등을 탈락시킨다. 그 참가자는 쇼를 떠난다. 이 과정은 한 명만 남을 때까지 매주 반복된다.
참가자의 최종 순위는 떠난 시점에 따라 정해진다. 마지막까지 남아 떠나는 참가자(우승자)는 순위 을 받고, 그 바로 전에 떠난 참가자는 순위 를 받는다. 이런 식으로 가장 먼저 탈락한 참가자가 가장 낮은 순위를 받을 때까지 이어진다.
실력 범위가 주어졌을 때, 각 참가자의 순위 기댓값을 구하라.
입력
첫 줄에 두 정수 ()과 ()이 주어진다. 은 참가자 수이고, 는 참가자의 실력 범위를 정한다. 참가자는 번부터 번까지 번호가 매겨져 있다. 번 참가자의 실력 범위는 부터 까지이며 양 끝을 포함한다. 매주 이 참가자의 점수는 이 범위 안에서 무작위로 정해지는 실수이다.
출력
개의 줄을 출력한다. 각 줄에는 참가자의 순위 기댓값을 나타내는 실수 하나를 참가자 번호 순서대로 출력한다. 절대 오차 또는 상대 오차가 이하이면 정답으로 인정한다.