특식 배분

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

요약
간식 N개와 순서별 상한 K_i가 주어질 때, 간식이 남아 있는 동안 각 생활관이 1부터 K_i까지 균등하게 가져간다면 간식을 받는 생활관 수의 기댓값을 구한다.
난이도

보통10점 중 6점

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

문제

하늘이네 부대에 설날 특식으로 간식 NN개가 지급되어 이를 각 생활관에 배분하려고 한다.

간식은 먼저 도착한 생활관부터 차례대로 가져간다. 그러나 앞 순서에서 너무 많이 가져가면 안 되기 때문에 각 생활관마다 수령할 간식의 수를 각각 무작위로 정하기로 했다.

더 구체적으로, 현재 차례에 간식이 ii개 남아있다고 할 때 11 이상 K_iK\_i 이하의 정수 중 하나를 무작위로 정하여 그 개수만큼 가져가기로 했다. 즉, 지금 도착한 생활관이 수령할 간식의 개수는 11부터 K_iK\_i까지 확률이 1K_i\frac{1}{K\_i}로 동일하다.

하늘이는 이러한 방식으로 특식을 배분하면 얼마나 많은 생활관이 간식을 수령할 수 있는지 궁금해졌다. 간식을 수령할 수 있는 생활관의 수의 기댓값을 구하시오.

입력

첫째 줄에 NN이 주어진다. (1≤N≤100,000)(1\le N\le 100,000)

둘째 줄에 K_1,K_2,⋯ ,K_NK\_1,K\_2,\cdots ,K\_N이 공백을 사이에 두고 주어진다. (1≤K_i≤i;(1\le K\_i\le i; 1≤i≤N)1\le i\le N)

출력

첫째 줄에 간식을 수령할 수 있는 생활관의 수의 기댓값을 출력한다.

정답과의 절대오차 혹은 상대오차가 10−610^{-6} 이하이면 정답으로 인정된다.

예제1

  1. 예제 1

    입력
    3
    1 2 2
    
    예상 출력
    2.25