#autumnfest09. [autumn_fest_09]Pyramid

[autumn_fest_09]Pyramid

配点

満点

120

部分点

40


問題文

NtimesMN \\times M の行列 Xi,j1iN,1jM\\{X_{i,j}\\}_{1 ≤ i ≤ N, 1 ≤ j ≤ M} があり、初期状態では 全ての要素が 0 となっている。

長さ QQ の整数列 ai,bi,di\\{a_i\\}, \\{b_i\\}, \\{d_i\\} が与えられる。 全てのk,i,j(1kQ,1iN,1jM)k, i, j (1≤ k ≤ Q,\\ 1 ≤ i ≤ N,\\ 1 ≤ j ≤ M ) について Xi,jX_{i,j}max(0,dk(aki+bkj))max(\\ 0,\\ d_k - (|a_k - i| + |b_k - j|)\\ ) を加える処理をした後の行列の各要素を求めよ。


入力形式

Qはとても大きいので入力の種を与えことにする。入力は以下の形式で与えられる。

$N\\ M\\ Q\\ a_1\\ Amul\\ Aadd\\\\ b_1\\ Bmul\\ Badd\\\\ d_1\\ Dmul\\ Dadd$

1<kQ1<k ≤ Q について ak,bk,dka_k,\\ b_k,\\ d_k はそれぞれ次の式で生成される。

ak=(ak1\*Amul+Aadd)a_k = (a_{k-1} \* Amul + Aadd) % N + 1 bk=(bk1\*Bmul+Badd)b_k = (b_{k-1} \* Bmul + Badd) % M + 1 dk=(dk1\*Dmul+Dadd)d_k = (d_{k-1} \* Dmul + Dadd) % max(N,M) + 1

出力形式

行列をそのまま出力するのは大きくなるので、以下の擬似コードで計算されるハッシュ値を一行に出力せよ。

P := 109+710^9 + 7 mod := 109+910^9 + 9 hash := 00 for i in 1..N1..N for j in 1..M1..M hash := (hash * P + Xi,jX_{i,j}) % mod

制約

  • 1N10001 ≤ N ≤ 1000
  • 1M10001 ≤ M ≤ 1000
  • 1Q1061 ≤ Q ≤ 10^6
  • 1a1N1 ≤ a_1 ≤ N
  • 1b1M1 ≤ b_1 ≤ M
  • 1d1max(N,M)1 ≤ d_1 ≤ max(N,M)
  • $0 ≤ Amul,\\ Bmul,\\ Dmul,\\ Aadd,\\ Badd,\\ Dadd ≤ 10^4$
  • 入力値はすべて整数である。

この問題の判定には、40 点分のテストケースのグループが設定されている。 このグループに含まれるテストケースは上記の制約に加えて下記の制約も満たす。

  • N=1N = 1

入力例 1


3 4 2
3 2 1
1 2 0
4 0 2

出力例 1


999996819

この例では$\\{a_i\\}=\\{3,2\\},\\ \\{b_i\\}=\\{1,3\\},\\ \\{d_i\\}=\\{4,3\\}$となる。

k=1k=1のとき、行列の各要素にそれぞれ次のような値を加える。


2 1 0 0
3 2 1 0
4 3 2 1

k=2k=2のとき、行列の各要素にそれぞれ次のような値を加える。


0 1 2 1
1 2 3 2
0 1 2 1

以上のように値を加えた結果、行列XXは最終的に次のようになる。


2 2 2 1
4 4 4 2
4 4 4 2
```この行列のハッシュ値を上記の方法で計算すると999996819が得られる。

* * *

### 入力例 2

```plain

1000 999 1000000
123 4567 8910
314 1592 6535
47 4747 4747

出力例 2


394300610

入力例 3


1 111 222
1 11 1111
33 44 55
66 77 88

出力例 3


79966854

Writer: komiya


Source Name

Autumn Fest