#2577. 缩小

缩小

题目描述

给定一个 n×nn \times n 的矩阵,你可以进行若干次操作。

每次操作,你可以将一个 k×kk \times k连续 子矩阵里的所有数全都加上 11 或者全都减去 11

连续子矩阵指的是选择的 k×kk\times k 必须是 n×nn\times n 矩阵内完整的部分。

初始时,矩阵中有 mm 个位置上的数不为 00,其它位置上的数均为 00

请你求出至少需要多少次操作,可以将矩形中所有数都变为 00

输入格式

第一行三个整数 n,m,kn,m,k,分别表示矩阵大小,非 00 格数和每次修改的连续子矩阵大小。

接下来 mm 行,每行三个整数 x,y,zx,y,z,表示初始时矩阵的第 xx 行第 yy 列上的数为 zz

输出格式

一行一个整数,表示最少操作次数。

特别地,如果无法使矩阵中所有数都变为 00,输出 -1

4 14 3
1 1 1
1 2 1
1 3 1
2 1 1
2 2 3
2 3 3
2 4 2
3 1 1
3 2 3
3 3 3
3 4 2
4 2 2
4 3 2
4 4 2
3
3 1 2
1 1 1
-1
4 5 1
1 1 5
2 2 -3
2 3 -4
3 3 1
4 4 2
15

提示

样例解释

  • 样例 11 解释:

给出的矩阵为:

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

具体步骤:

先将以第一行第一列为左上角的连续子矩阵执行 减 1 操作 一次;

再将以第二行第二列为左上角的连续子矩阵执行 减 1 操作 两次。

总共三次。

1 1 1 0  0 0 0 0  0 0 0 0  0 0 0 0
1 3 3 2  0 2 2 2  0 1 1 1  0 0 0 0
1 3 3 2  0 2 2 2  0 1 1 1  0 0 0 0
0 2 2 2  0 2 2 2  0 1 1 1  0 0 0 0
  • 样例 22 解释:

给出的矩阵为:

1 0 0
0 0 0
0 0 0

只通过 2×22\times 2 的连续子矩阵操作不可能使得所有格子上的数都变为 00

数据范围

本题采用捆绑测试。

子任务编号 nn\leq kk\leq 分值
1 10310^3 11 11
2 2020 14
3 100100 17
4 10310^3 10310^3 34
5 5×1035\times 10^3 24

对于所有数据,1n5×1031\leq n\leq 5\times 10^31mmin(n2,5×105)1\leq m\leq \min(n^2,5\times 10^5)1kmin(n,103)1\leq k\leq \min(n,10^3)1x,yn1\leq x,y\leq n,每对 (x,y)(x,y) 至多出现一次,1z1091 \le |z| \leq 10^9

数据保证如果有解,答案不超过 26312^{63}-1


【提示】

本题读入量较大,建议使用较快的读入方式。