이중 정렬
시간 제한1.5초메모리 제한1024 MB
1부터 m까지의 정수에서 n개를 균등하게 고를 때, 차분 수열을 정렬해 누적합으로 만든 최종 수열의 각 위치 기댓값을 구합니다.
문제
두 정수 과 이 주어진다(). 다음 과정으로 개의 정수로 이루어진 수열을 만든다.
- 이상 이하의 서로 다른 정수 개를 고른다.
- 고른 수를 비내림차순으로 정렬한다.
- 차분 수열을 만든다. 이는 수열 를 로 바꾸는 과정이다.
- 차분 수열을 비내림차순으로 정렬한다.
- 정렬된 차분 수열의 누적 합을 구해 최종 수열을 얻는다. 이는 수열 를 로 바꾸는 과정이다.
예를 들어 이고 일 때:
- 처음에 , , 를 골랐다고 하자.
- 순서대로 정렬하면 , , 이다.
- 차분 수열은 , , 이다.
- 차분 수열을 정렬하면 , , 이다.
- 정렬된 차분 수열의 누적 합은 , , 이다.
1단계에서 서로 다른 정수 집합을 모두 같은 확률로 고른다고 하자. 최종 수열의 각 위치 값의 기댓값을 구하라.
입력
입력은 한 줄로 주어지며, 두 정수 과 이 공백으로 구분되어 들어온다. 은 수열의 길이이고(), 처음 고르는 정수는 모두 이상 이하이다().
출력
개의 줄을 출력한다. 각 줄에는 최종 수열의 해당 위치 값의 기댓값을 나타내는 실수를 하나씩 출력한다. 각 답은 절대 오차 또는 상대 오차가 이하이면 정답으로 인정된다.