아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Empodia에 관한 또 다른 문제

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

요약
길이 i인 순열을 framed interval(최댓값과 최솟값의 차가 구간 길이에서 1을 뺀 값인 구간) 관계로 묶었을 때의 동치류 개수를 각 i마다 소수 P로 나눈 나머지로 구한다.
난이도

어려움10점 중 9점

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

문제

길이 NN의 순열 p1,p2,…,pNp_1, p_2, \ldots, p_N에서 어떤 연속 부분 수열 pl,pl+1,…,prp_l, p_{l+1}, \ldots, p_r이 max⁡k=lrpk−min⁡k=lrpk=r−l\max_{k=l}^{r} p_k - \min_{k=l}^{r} p_k = r - l을 만족하면, 이 연속 부분 수열을 프레임 구간(framed interval)이라고 부른다. 예를 들어 [7,8,9][7, 8, 9], [3,1,5,4,2][3, 1, 5, 4, 2], [4,3][4, 3], [2][2]는 프레임 구간이다. [3,5][3, 5], [5,3][5, 3]은 프레임 구간이 아니다.

길이 NN의 순열 pp와 두 정수 1≤l≤r≤N1 \le l \le r \le N이 주어졌을 때, f(p,l,r)f(p, l, r)은 pl,pl+1,…,prp_l, p_{l+1}, \ldots, p_r이 프레임 구간이면 참이고, 아니면 거짓이다.

길이가 NN인 두 순열 P,QP, Q가 주어졌을 때, 모든 1≤i≤j≤N1 \le i \le j \le N에 대해서 f(P,i,j)  ⟺  f(Q,i,j)f(P, i, j) \iff f(Q, i, j)가 항상 만족하면 P,QP, Q를 프레임 구간 동형(framed interval isomorphic)이라고 정의한다.

프레임 구간 동형 관계는 길이가 NN인 모든 순열들 사이의 동치 관계(equivalence relationship)이다. 1≤i≤N1 \le i \le N인 모든 순열을 프레임 구간 동형 관계로 묶었을 때, 동치류(equivalence class)의 개수를 소수 PP로 나눈 나머지를 모든 ii에 대해 출력하라.

입력

첫 번째 줄에 두 정수 N,PN, P가 주어진다. (1≤N≤50001 \le N \le 5000, 108≤P≤10910^8 \le P \le 10^9). PP는 소수이다.

출력

NN개의 줄을 출력하라. 이 중 ii번째 줄에는, 길이 ii인 모든 순열의 동치류의 개수를 PP로 나눈 나머지가 출력되어야 한다.

예제1

  1. 예제 1

    입력
    6 993244853
    
    예상 출력
    1
    1
    3
    12
    52
    240