atcoder#ARC100D. [ARC100F] Colorful Sequences

[ARC100F] Colorful Sequences

配点 : 11001100

問題文

整数 NNKK、そして長さ MM の整数列 AA が与えられます。

各要素が 11 以上 KK 以下の整数である整数列がカラフルであるとは、 その整数列の長さ KK の連続する部分列であって、11 から KK までの整数を 11 個ずつ含むものが存在することを意味します。

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、109+710^9+7 で割った余りを求めてください。

制約

  • 1N250001 \leq N \leq 25000
  • 1K4001 \leq K \leq 400
  • 1MN1 \leq M \leq N
  • 1AiK1 \leq A_i \leq K
  • 入力はすべて整数である。

入力

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

NN KK MM

A1A_1 A2A_2 ...... AMA_M

出力

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、 その総和を 109+710^9+7 で割った余りを出力せよ。

3 2 1
1
9

長さ 33 のカラフルな整数列は、(1,1,2)(1,1,2), (1,2,1)(1,2,1), (1,2,2)(1,2,2), (2,1,1)(2,1,1), (2,1,2)(2,1,2), (2,2,1)(2,2,1)66 個です。 これらの整数列の、連続する部分列であって A=(1)A=(1) に一致するものの個数は、それぞれ 22, 22, 11, 22, 11, 11 個です。 よって、これらの合計である 99 が答えになります。

4 2 2
1 2
12
7 4 5
1 2 3 1 2
17
5 4 3
1 1 1
0
10 3 5
1 1 2 3 3
1458
25000 400 4
3 7 31 127
923966268
9954 310 12
267 193 278 294 6 63 86 166 157 193 168 43
979180369