atcoder#ARC133C. [ARC133C] Row Column Sums

[ARC133C] Row Column Sums

配点 : 500500

問題文

HHWW 列からなるマス目があります.

すぬけくんは,各マスに 00 以上 K1K-1 以下の整数を書き込もうとしています. ここで,以下の条件を満たす必要があります.

  • 1iH1 \leq i \leq H について,ii 行目にあるマスに書かれた整数の総和を KK で割った余りは AiA_i である.
  • 1iW1 \leq i \leq W について,ii 列目にあるマスに書かれた整数の総和を KK で割った余りは BiB_i である.

条件を満たすようにマスに整数を書き込むことができるかどうか判定し,また可能な場合は,書き込む整数の総和としてありうる最大値を求めてください.

制約

  • 1H,W2000001 \leq H,W \leq 200000
  • 2K2000002 \leq K \leq 200000
  • 0AiK10 \leq A_i \leq K-1
  • 0BiK10 \leq B_i \leq K-1
  • 入力される値はすべて整数である

入力

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

HH WW KK

A1A_1 A2A_2 \cdots AHA_H

B1B_1 B2B_2 \cdots BWB_W

出力

条件を満たすようにマスに整数を書き込むことが不可能な場合,-1 と出力せよ. 可能な場合,書き込む整数の総和としてありうる最大値を出力せよ.

2 4 3
0 2
1 2 2 0
11

以下のように書き込めば良いです.

-----------------
| 2 | 0 | 2 | 2 |
-----------------
| 2 | 2 | 0 | 1 |
-----------------

この書き方は条件を満たしています. 例えば 11 行目に書かれた整数の総和は 66 であり,これを K(=3)K(=3) で割ったあまりは A1(=0)A_1(=0) になっています.

この書き方では整数の総和は 1111 になっており,これはありうる最大値です.

3 3 4
0 1 2
1 2 3
-1