만드는 중입니다

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

셀 병합

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

요약
일렬로 늘어선 N개의 셀이 무작위로 인접한 셀과 합쳐져 하나만 남을 때, 각 번호가 최종 승자가 될 확률을 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

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

문제

Bessie는 한 줄로 늘어선 셀로 이루어진 온라인 게임을 즐기고 있다. 각 셀에는 레이블과 크기가 있다. 셀은 이웃한 셀을 계속 먹고, 마지막에는 승자 하나만 남는다.

셀은 왼쪽에서 오른쪽으로 NN개 (2≤N≤50002\le N\le 5000) 놓여 있으며, 왼쪽부터 11에서 NN까지 레이블이 붙어 있다. 처음 크기는 s1,s2,…,sNs_1, s_2, \dots, s_N이다 (1≤si≤1051\le s_i\le 10^5).

셀이 두 개 이상 남아 있는 동안, 인접한 셀 한 쌍을 균등한 확률로 무작위로 골라 하나의 새 셀로 합친다. 레이블 aa, 현재 크기 cac_a인 셀이 레이블 bb, 현재 크기 cbc_b인 셀과 합쳐지면, 새 셀의 크기는 ca+cbc_a+c_b이다. 레이블은 더 큰 셀의 레이블을 따른다. 크기가 같으면 레이블이 더 큰 쪽이 된다. 식으로 쓰면 다음과 같다.

결과 레이블={aca>cbbca<cbmax⁡(a,b)ca=cb\text{결과 레이블} = \begin{cases} a & c_a > c_b \\ b & c_a < c_b \\ \max(a,b) & c_a = c_b \end{cases}

11부터 NN까지의 각 레이블 ii에 대해, 최종 셀의 레이블이 ii일 확률을 구하라. 이 확률은 aibi\frac{a_i}{b_i}로 나타낼 수 있으며, bi≢0(mod109+7)b_i\not\equiv 0 \pmod{10^9+7}이다. aibi−1 mod (109+7)a_i b_i^{-1} \bmod (10^9+7)를 출력하라.

입력

첫 줄에 NN이 주어진다.

다음 줄에 s1,s2,…,sNs_1, s_2, \dots, s_N이 주어진다.

출력

11부터 NN까지의 각 레이블 ii에 대해, 최종 셀의 레이블이 ii일 확률을 10^9+7로 나눈 나머지로 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 1 1
    
    예상 출력
    0
    500000004
    500000004
    
  2. 예제 2

    입력
    4
    3 1 1 1
    
    예상 출력
    666666672
    0
    166666668
    166666668