만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

게임 쇼 탈락

시간 제한8초메모리 제한2048 MB

요약
참가자 n명이 각자 구간 [i, i+k]에서 뽑은 실수 점수로 매주 경쟁하고, 1등이 2등을 탈락시킵니다. 각 참가자의 기대 순위를 구합니다.
난이도

보통10점 중 7점

유형
확률, 동적 계획법
정답자
아직 제출이 없습니다

문제

당신은 탈락 방식의 게임 쇼를 운영하고 있다. 참가자는 한 명씩 탈락하며, 마지막 한 명이 남을 때까지 계속된다. 참가자에 대해 알고 있는 정보를 바탕으로 결과를 예측한다.

매주 남은 참가자들이 경기를 치른다. 각 참가자의 점수는 그 참가자 고유의 실력 범위 안에서 정해지는 무작위 실수이다. 점수가 높은 순서대로 순위가 매겨진다. 점수는 실수이므로 동점이 될 확률은 0이다.

이번 주 경기의 우승자가 탈락자를 고른다. 모든 참가자는 자신 다음으로 잘한 사람을 골라야 한다고 생각하므로, 우승자는 항상 2등을 탈락시킨다. 그 참가자는 쇼를 떠난다. 이 과정은 한 명만 남을 때까지 매주 반복된다.

참가자의 최종 순위는 떠난 시점에 따라 정해진다. 마지막까지 남아 떠나는 참가자(우승자)는 순위 11을 받고, 그 바로 전에 떠난 참가자는 순위 22를 받는다. 이런 식으로 가장 먼저 탈락한 참가자가 가장 낮은 순위를 받을 때까지 이어진다.

실력 범위가 주어졌을 때, 각 참가자의 순위 기댓값을 구하라.

입력

첫 줄에 두 정수 nn(2≤n≤1 0002 \leq n \leq 1\,000)과 kk(2≤k≤102 \leq k \leq 10)이 주어진다. nn은 참가자 수이고, kk는 참가자의 실력 범위를 정한다. 참가자는 11번부터 nn번까지 번호가 매겨져 있다. ii번 참가자의 실력 범위는 ii부터 i+ki+k까지이며 양 끝을 포함한다. 매주 이 참가자의 점수는 이 범위 안에서 무작위로 정해지는 실수이다.

출력

nn개의 줄을 출력한다. 각 줄에는 참가자의 순위 기댓값을 나타내는 실수 하나를 참가자 번호 순서대로 출력한다. 절대 오차 또는 상대 오차가 10−610^{-6} 이하이면 정답으로 인정한다.

예제1

  1. 예제 1

    입력
    3 2
    
    예상 출력
    2.109375
    2.625000
    1.265625