셀 병합
시간 제한2초메모리 제한1024 MB
일렬로 늘어선 N개의 셀이 무작위로 인접한 셀과 합쳐져 하나만 남을 때, 각 번호가 최종 승자가 될 확률을 10^9+7로 나눈 나머지로 구합니다.
문제
Bessie는 한 줄로 늘어선 셀로 이루어진 온라인 게임을 즐기고 있다. 각 셀에는 레이블과 크기가 있다. 셀은 이웃한 셀을 계속 먹고, 마지막에는 승자 하나만 남는다.
셀은 왼쪽에서 오른쪽으로 개 () 놓여 있으며, 왼쪽부터 에서 까지 레이블이 붙어 있다. 처음 크기는 이다 ().
셀이 두 개 이상 남아 있는 동안, 인접한 셀 한 쌍을 균등한 확률로 무작위로 골라 하나의 새 셀로 합친다. 레이블 , 현재 크기 인 셀이 레이블 , 현재 크기 인 셀과 합쳐지면, 새 셀의 크기는 이다. 레이블은 더 큰 셀의 레이블을 따른다. 크기가 같으면 레이블이 더 큰 쪽이 된다. 식으로 쓰면 다음과 같다.
부터 까지의 각 레이블 에 대해, 최종 셀의 레이블이 일 확률을 구하라. 이 확률은 로 나타낼 수 있으며, 이다. 를 출력하라.
입력
첫 줄에 이 주어진다.
다음 줄에 이 주어진다.
출력
부터 까지의 각 레이블 에 대해, 최종 셀의 레이블이 일 확률을 10^9+7로 나눈 나머지로 한 줄에 하나씩 출력한다.