atcoder#ABC137F. [ABC137F] Polynomial Construction

[ABC137F] Polynomial Construction

配点 : 600600

問題文

素数 pp と、長さ pp0011 からなる整数列 a0,,ap1a_0, \ldots, a_{p-1} が与えられます。

以下の条件を満たす p1p-1 次以下の多項式 $f(x) = b_{p-1} x^{p-1} + b_{p-2} x^{p-2} + \ldots + b_0$ を一つ求めてください。

  • ii (0ip1)(0 \leq i \leq p-1) に対し、bib_i0bip10 \leq b_i \leq p-1 なる整数
  • ii (0ip1)(0 \leq i \leq p-1) に対し、f(i)ai(modp)f(i) \equiv a_i \pmod p

制約

  • 2p29992 \leq p \leq 2999
  • pp は素数である。
  • 0ai10 \leq a_i \leq 1

入力

入力は以下の形式で標準入力から与えられる。

pp

a0a_0 a1a_1 \ldots ap1a_{p-1}

出力

条件を満たす多項式 f(x)f(x) の一つにおける b0,b1,,bp1b_0, b_1, \ldots, b_{p-1} の値をこの順に空白区切りで出力せよ。

なお、解は必ず存在することが示せる。複数の解が存在する場合は、そのうちのどれを出力してもよい。

2
1 0
1 1

f(x)=x+1f(x) = x + 1 は以下のように条件を満たします。

  • f(0)=0+1=11(mod2)f(0) = 0 + 1 = 1 \equiv 1 \pmod 2
  • f(1)=1+1=20(mod2)f(1) = 1 + 1 = 2 \equiv 0 \pmod 2
3
0 0 0
0 0 0

f(x)=0f(x) = 0 も有効な出力です。

5
0 1 0 1 0
0 2 0 1 3