#ARC133C. 行列和

行列和

行列和

时间限制:2s
空间限制:1024MB

题目描述

有一个 HH 行 WW 列的网格。你需要在每个格子中写入一个 00 到 K−1K-1 之间的整数,并满足:第 ii 行所有数之和除以 KK 的余数为 AiA_i,第 jj 列所有数之和除以 KK 的余数为 BjB_j。

判断是否存在满足条件的填写方案;若存在,求所有格子中整数总和的最大值。

输入格式

H W K
A_1 A_2 ... A_H
B_1 B_2 ... B_W

输出格式

若不存在方案,输出 -1;否则输出可能的最大总和。

样例输入 1

2 4 3
0 2
1 2 2 0

样例输出 1

11

样例输入 2

3 3 4
0 1 2
1 2 3

样例输出 2

-1

数据范围

  • 1≤H,W≤2000001\le H,W\le 200000;
  • 2≤K≤2000002\le K\le 200000;
  • 0≤Ai,Bj<K0\le A_i,B_j<K;
子任务编号 分值 特殊限制
1 10 K≤3K\le3,H×W≤8H\times W\le8
2 24 min⁡(H,W)=1\min(H,W)=1
3 36 K=2K=2
4 30 无特殊限制