만드는 중입니다

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

이중 정렬

시간 제한1.5초메모리 제한1024 MB

요약
1부터 m까지의 정수에서 n개를 균등하게 고를 때, 차분 수열을 정렬해 누적합으로 만든 최종 수열의 각 위치 기댓값을 구합니다.
난이도

어려움10점 중 8점

유형
조합론, 확률, 수학
정답자
아직 제출이 없습니다

문제

두 정수 nn과 mm이 주어진다(n≤mn \le m). 다음 과정으로 nn개의 정수로 이루어진 수열을 만든다.

  1. 11 이상 mm 이하의 서로 다른 정수 nn개를 고른다.
  2. 고른 수를 비내림차순으로 정렬한다.
  3. 차분 수열을 만든다. 이는 수열 a1,a2,a3,…a_1, a_2, a_3, \ldots를 a1,a2−a1,a3−a2,…a_1, a_2-a_1, a_3-a_2, \ldots로 바꾸는 과정이다.
  4. 차분 수열을 비내림차순으로 정렬한다.
  5. 정렬된 차분 수열의 누적 합을 구해 최종 수열을 얻는다. 이는 수열 b1,b2,b3,…b_1, b_2, b_3, \ldots를 b1,b2+b1,b3+b2+b1,…b_1, b_2+b_1, b_3+b_2+b_1, \ldots로 바꾸는 과정이다.

예를 들어 n=3n = 3이고 m=10m = 10일 때:

  1. 처음에 66, 22, 99를 골랐다고 하자.
  2. 순서대로 정렬하면 22, 66, 99이다.
  3. 차분 수열은 22, 44, 33이다.
  4. 차분 수열을 정렬하면 22, 33, 44이다.
  5. 정렬된 차분 수열의 누적 합은 22, 55, 99이다.

1단계에서 서로 다른 정수 집합을 모두 같은 확률로 고른다고 하자. 최종 수열의 각 위치 값의 기댓값을 구하라.

입력

입력은 한 줄로 주어지며, 두 정수 nn과 mm이 공백으로 구분되어 들어온다. nn은 수열의 길이이고(1≤n≤501 \le n \le 50), 처음 고르는 정수는 모두 11 이상 mm 이하이다(n≤m≤10 000n \le m \le 10\,000).

출력

nn개의 줄을 출력한다. 각 줄에는 최종 수열의 해당 위치 값의 기댓값을 나타내는 실수를 하나씩 출력한다. 각 답은 절대 오차 또는 상대 오차가 10−610^{-6} 이하이면 정답으로 인정된다.

예제1

  1. 예제 1

    입력
    3 5
    
    예상 출력
    1
    2.3
    4.5