동우가 눈을 뜨면 해가 떠있는 이유는?

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

요약
무작위 순열로 정N각형의 꼭짓점에 번호를 매기고 이웃한 번호끼리 선분을 그어 잘랐을 때 생기는 종이 조각 개수의 기댓값을 N=1부터 10000까지 각각 구한다.
난이도

어려움10점 중 8점

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

문제

동우가 눈을 뜨면 해가 떠있는 이유는? Noon이라서라고 생각하셨나요? 그냥 늦잠이 동우의 패시브라서라고 생각하셨나요?

그것도 맞긴 하지만, 새벽이나 밤늦게 일어나지 않는 한 일반적으로 눈을 뜨면 해가 떠 있습니다.

MatKor Cup이 총 77회가 진행되며 이제 동우와 재우, 종우는 MatKor 최고참이 되어 후배들에게 여러 병장놀이를 하는 재미로 살고 있다. 세 명은 어느 날 해의 그림을 보고 해가 정NN각형 처럼 생겼다고 생각하며 다음 놀이를 만들었다.

해는 정NN각형처럼 생겼다.

동우는 길이 NN의 순열 하나를 랜덤으로 고른다. 이때, 모든 N!N!가지의 순열 중 하나를 동일한 확률로 고른다.

재우는 정NN각형 모양 종이의 한 점을 동일한 확률로 골라, 그 점부터 시계방향으로 동우가 정한 순열대로 점들에 번호를 부여한다.

종우는 모든 ii번과 i+1i+1번 꼭짓점을 지나는 선분을 그린다. 이때, NN번과 11번도 연결한다. 만약, 이미 정NN각형 모양 종이의 한 변을 이룬다면 그리지 않는다.

이제 가장 먼저 눈에 보이는 후배에게 이 선분을 따라 종이를 자르게 시킨다.

불의를 참을 수 없던 세진이는 이 놀이의 흥을 깨고 싶어 한다. 세진이는 가능한 어떤 NN이 정해졌을 때, 최종적으로 나누어지는 종이 조각 개수의 기댓값을 구하고 싶다. 세진이를 도와 NN이 11부터 10,00010\\, 000까지 각각의 경우에 대해 최종적으로 나누어지는 종이 조각 개수의 기댓값을 구해보자.

입력

첫 번째 줄에 문자열 Goodbye가 주어진다.

두 번째 줄에 문자열 So Long이 주어진다.

세 번째 줄에 문자열 MatKor Cup!이 주어진다.

출력

첫 번째 줄부터 10,00010\\, 000줄에 걸쳐 N=1N=1부터 N=10,000N=10\\, 000까지 정답을 998,244,353998\\, 244\\, 353으로 나눈 나머지를 출력한다. 단, N≤2N\le 2인 경우 정NN각형이 존재하지 않으므로 대신 -1을 출력하라.

기약 분수 pq(p≥0,q>0,gcd⁡(p,q)=1)\frac{p}{q}(p\ge 0,q>0,\gcd(p,q) =1)를 MM으로 나눈 나머지는 q−1q^{-1}가 q⋅q−1≡1(modM)q\cdot q^{-1}\equiv 1\pmod M을 만족하는 정수, 즉 qq의 MM에 대한 모듈로 곱셈 역원일 때, p⋅q−1(modM)p\cdot q^{-1}\pmod M로 정의한다. 만약 정수일 경우 q=q−1=1q=q^{-1}=1이므로 p(modM)p\pmod M를 의미한다.

주어진 조건 내에서 기댓값이 정수 혹은 유리수임을 증명할 수 있으며, 유리수의 경우 기약분수에서 분모가 998,244,353998\\, 244\\, 353의 배수가 아닌 경우만 주어짐이 보장된다.

제한

각 NN에 대해 정답이 맞은 개수 당 0.010.01점을 부여한다.

단, 출력이 10,00010\\, 000개의 정수가 아닌 경우나 −1-1 이상 998,244,353998\\, 244\\, 353 미만의 범위를 벗어나는 경우 틀렸습니다를 받을 수 있으므로, 답을 구하지 못한 NN도 정수를 출력하자.

힌트

이 문제의 시간 제한이 1.241.24초인 이유는 동우의 생일이 11월 2424일이기 때문이다.

예제1

  1. 예제 1

    입력
    Goodbye
    So Long
    MatKor Cup!
    
    예상 출력
    [Redacted]