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

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

수열 이어가기

시간 제한4초메모리 제한256 MB

요약
n개의 값이 주어질 때, 998244353을 법으로 가능한 한 낮은 차수의 다항식과 일치하도록 수열을 m개 더 연장한다.
난이도

어려움10점 중 9점

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

문제

“수열이 주어졌을 때 다음 원소를 구하라”는 퍼즐을 본 적이 있을 것이다. 어릴 때는 논리적으로 보이지만, 나중에는 어떤 수든 적고 교묘한 구성으로 정당화할 수 있다는 것을 알게 된다.

이 문제에서는 수열을 “가장 쉬운 방법으로” 이어가야 한다. 아직 엄밀하지 않다고? 형식적인 정의를 내리자.

수열 a1,a2,…,ana_1, a_2, \ldots, a_n의 어려움을, 11부터 nn까지의 모든 xx에 대해 p(x)≡ax(mod998 244 353)p(x) \equiv a_x \pmod{998\,244\,353}을 만족하는 차수 dd의 다항식 pp가 존재하는 최소 정수 dd로 정의하자. 이 문제에서는 다항식 p(x)=0p(x) = 0의 차수를 −1-1로 본다.

크기 nn의 수열 a1,a2,...,ana_1, a_2, ..., a_n이 주어졌을 때, 다음 조건을 만족하는 크기 n+mn+m의 수열 b1,b2,…,bn+mb_1, b_2, \ldots, b_{n+m}을 구성하라:

  • 11부터 n+mn+m까지의 모든 ii에 대해 0≤bi<998 244 3530 \le b_i < 998\,244\,353,
  • 11부터 nn까지의 모든 ii에 대해 ai=bia_i = b_i,
  • 수열 bb의 어려움이 가능한 한 작다.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다 (1≤n≤1051 \le n \le 10^{5}, 1≤m≤8⋅1051 \le m \le 8 \cdot 10^{5}).

둘째 줄에 nn개의 정수 aia_i가 주어진다: 초기 수열 (0≤ai<998 244 3530 \le a_i < 998\,244\,353).

출력

mm개의 정수 bn+1,bn+2,…,bn+mb_{n+1}, b_{n+2}, \ldots, b_{n+m}을 공백으로 구분해 출력하라.

힌트

표기 u≡v(modp)u \equiv v \pmod{p}는 uu와 vv가 pp에 대해 같은 나머지를 가진다는 뜻이다.

예제4

  1. 예제 1

    입력
    5 10
    1 4 9 16 25
    
    예상 출력
    36 49 64 81 100 121 144 169 196 225
    
  2. 예제 2

    입력
    3 3
    0 0 0
    
    예상 출력
    0 0 0
    
  3. 예제 3

    입력
    5 10
    1 2 4 8 16
    
    예상 출력
    31 57 99 163 256 386 562 794 1093 1471
    
  4. 예제 4

    입력
    3 1
    2 1 0
    
    예상 출력
    998244352