atcoder#AGC049E. [AGC049E] Increment Decrement

[AGC049E] Increment Decrement

配点 : 16001600

問題文

maroon くんは以下のような問題を考えました.


すぬけ君は長さ NN の整数列 aa を持っています. 最初,すべての ii (1iN1 \leq i \leq N) について,ai=0a_i=0 です.

すぬけ君は,次の 22 つの操作を好きな順序で好きな回数繰り返します.

  • 操作 11: 好きな整数 ii (1iN1 \leq i \leq N) と xx (x=1x=1 or x=1x=-1) を選び,aia_iai+xa_i+x で置き換える. この操作は,11 回につき 11 のコストがかかる.
  • 操作 22: 好きな整数 l,rl,r (1lrN1 \leq l \leq r \leq N) と xx (x=1x=1 or x=1x=-1) を選び,すべての ii (lirl \leq i \leq r) について,aia_iai+xa_i+x で置き換える. この操作は,11 回につき CC のコストがかかる.

長さ NN の整数列 AA が与えられます. すぬけくんの目標は,すべての ii について,ai=Aia_i=A_i とすることです. 目標を達成するために必要なコストの総和の最小値を求めてください.


しかし,この問題を準備していたところ,想定していない解法がたくさん見つかってしまいました. そこで,以下のように問題を変形しました.


すぬけくんは今,NN 個の整数列 B1,B2,,BNB_1,B_2,\cdots,B_N と,整数 C,KC,K を持っています. BiB_i (1iN1 \leq i \leq N) はすべて長さ KK の整数列です.

これからすぬけくんは,長さ NN の整数列 AA を作り,上記の問題の答えを求めようとしています. AiA_i の値は,Bi,1,Bi,2,,Bi,KB_{i,1},B_{i,2},\cdots,B_{i,K} から選ぶことにします. ここで,BiB_i の値に重複があっても,それらの値を区別することにします. つまり,AA の作り方は KNK^N 通り存在します.

すべての AA に対する上記の問題の答えの総和をmod(109+7)\bmod (10^9+7) で求めてください.


この問題を解いてください.

制約

  • 1N501 \leq N \leq 50
  • 1CN1 \leq C \leq N
  • 1K501 \leq K \leq 50
  • 1Bi,j1091 \leq B_{i,j} \leq 10^9
  • 入力はすべて整数である.

入力

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

NN CC KK

B1,1B_{1,1} B1,2B_{1,2} \cdots B1,KB_{1,K}

B2,1B_{2,1} B2,2B_{2,2} \cdots B2,KB_{2,K}

\vdots

BN,1B_{N,1} BN,2B_{N,2} \cdots BN,KB_{N,K}

出力

答えを出力せよ.

5 2 1
2
3
1
2
1
6

A=(2,3,1,2,1)A=(2,3,1,2,1) です. 最適な操作の一例を以下に示します.

  • l=1,r=5,x=1l=1,r=5,x=1 として,操作 22 を実行する. a=(1,1,1,1,1)a=(1,1,1,1,1) となる.
  • l=1,r=4,x=1l=1,r=4,x=1 として,操作 22 を実行する. a=(2,2,2,2,1)a=(2,2,2,2,1) となる.
  • i=2,x=1i=2,x=1 として,操作 11 を実行する. a=(2,3,2,2,1)a=(2,3,2,2,1) となる.
  • i=3,x=1i=3,x=-1 として,操作 11 を実行する. a=(2,3,1,2,1)a=(2,3,1,2,1) となる.
3 2 3
1 2 3
1 2 3
1 2 3
126
10 4 1
8
10
10
1
5
9
5
5
9
1
45
10 5 10
79 48 35 56 16 26 37 6 75 23
39 99 57 100 49 90 18 9 12 91
29 97 49 86 30 94 78 63 49 22
100 27 48 91 66 14 6 20 23 84
12 60 99 75 88 95 61 58 20 46
10 11 30 38 55 94 9 52 92 75
27 22 46 85 83 88 50 63 95 91
49 59 19 37 53 27 11 26 2 91
95 36 20 76 84 41 59 95 67 66
52 60 17 11 28 57 75 69 95 24
877826779