問題一覧 > 通常問題

No.1172 Add Recursive Sequence

レベル : / 実行時間制限 : 1ケース 4.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 59
作問者 : opt / テスター : noshi91
19 ProblemId : 4271 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-12-04 09:43:15

問題文

整数列 (ai)i0 の最初の Ka0,,aK1 と,K 個の整数 c1,,cK が与えられます. (ai)i0 の第 K 項以降を,以下の漸化式で定めます:

  • ai=k=1Kckaik(iK)

長さ N の配列 (x0,,xN1) の全要素を 0 に初期化し,以下の操作 j=1,,M を,操作 1 から順に行います:

  • (操作 j):lji<rj なる各整数 i に対し,xixi+ailj と更新する.

各整数 i (0i<N) に対し,全ての操作の後の xi の値を 109+7 で割った余りを求めてください.

入力

入力は以下の形式で与えられる:

KNM
a0a1aK1
c1c2cK
l1r1
l2r2
 
lMrM
  • 入力は全て整数
  • 1K200
  • 1N105
  • 1M105
  • 0ai109(0i<K)
  • 0ci109(1iK)
  • 0lj<rjN(1jM)

出力

(i+1) 行目 (0i<N) に,全ての操作の後の xi の値を 109+7 で割った余りを出力せよ. 最後に改行を出力すること.

サンプル

サンプル1
入力
2 6 3
3 1
1 2
2 4
0 5
3 6
出力
3
1
10
13
24
7

数列 (ai)i0 は漸化式 ai=ai1+2ai2 を満たし,

  • a0=3
  • a1=1
  • a2=7
  • a3=9
  • a4=23
となります.

配列 (x0,x1,x2,x3,x4,x5) は,

  • 操作 1 の後: (0,0,3,1,0,0)
  • 操作 2 の後: (3,1,10,10,23,0)
  • 操作 3 の後: (3,1,10,13,24,7)
となるため,上のような出力になります.

サンプル2
入力
4 10 6
38357 29371 11020 79402
86940 11636 45261 69281
2 8
1 9
5 6
2 7
0 6
3 10
出力
38357
67728
117105
187521
18341484
711694633
729776525
364121460
472238231
652635015

109+7 で割った余りを出力してください.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。