#P15945. [JOI Final 2026] 雨落三角 / Triangular Rainfall

[JOI Final 2026] 雨落三角 / Triangular Rainfall

题目描述

JOI 国是一个边长为 LL 的正三角形,其顶点为点 A,BA, BCC。这里 LL 是一个正整数。边 ABAB 在东西方向上连接顶点 AABB,顶点 AA 是 JOI 国最西端的一点,而顶点 BB 是最东端的一点。顶点 CC 是 JOI 国最北端的一点。

JOI 国被划分为 L2L^2 个区域,每个区域都是一个边长为 11 的正三角形。作为某个区域顶点的点被称为格点。对于满足 0yL0 \leq y \leq L0xLy0 \leq x \leq L-y 的整数 x,yx, y,从南数第 (1+y)(1+y) 个、从西数第 (1+x)(1+x) 个的格点记作 (x,y)(x, y)。特别地,A,BA, BCC 分别记作 (0,0),(L,0)(0,0), (L, 0)(0,L)(0, L)。例如,下图显示了 L=5L=5 时的区域和格点。

::::align{center} ::::

在 JOI 国,已经公布了未来 NN 天的天气预报。在第 ii 天,预报降雨将落在以格点 (Xi,Yi),(Xi+Zi,Yi)(X_i, Y_i), (X_i + Z_i, Y_i)(Xi,Yi+Zi)(X_i, Y_i + Z_i) 为顶点的三角形区域 TiT_i 内。如果一个区域完整地包含在 TiT_i 中,则称该区域在第 ii 天被预报有雨。

为了应对降雨引起的灾害,有必要针对每个 k=1,2,,Kk = 1, 2, \dots, K,确定预报有至少 kk 天降雨的区域数量。

给定 JOI 国的大小、天气预报以及 KK,请编写一个程序,对于每个 k=1,2,,Kk = 1, 2, \dots, K,计算预报有至少 kk 天降雨的区域数量。

输入格式

输入通过标准输入以以下格式给出:

LL NN KK
X1X_1 Y1Y_1 Z1Z_1
X2X_2 Y2Y_2 Z2Z_2
\vdots
XNX_N YNY_N ZNZ_N

输出格式

向标准输出打印 KK 行。第 kk 行(1kK1 \leq k \leq K)应包含预报有至少 kk 天降雨的区域数量。

5 2 2
1 0 3
0 1 4
21
4
5 4 5
1 0 4
0 1 3
2 0 2
1 2 2
21
10
2
0
0

提示

样例 1

如果我们图示每个区域预报有雨的天数,将得到下图。

::::align{center} ::::

该样例输入满足子任务 1,2,3,4,81, 2, 3, 4, 899 的限制条件。

样例 2

如果我们图示每个区域预报有雨的天数,将得到下图。

::::align{center} ::::

该样例输入满足子任务 2,3,42, 3, 499 的限制条件。

限制条件

  • 2L1092 \leq L \leq 10^{9}
  • 2N2000002 \leq N \leq 200000
  • 1K51 \leq K \leq 5
  • 0XiL0 \leq X_i \leq L (1iN1 \leq i \leq N)。
  • 0YiL0 \leq Y_i \leq L (1iN1 \leq i \leq N)。
  • 1ZiL1 \leq Z_i \leq L (1iN1 \leq i \leq N)。
  • Xi+Yi+ZiLX_i + Y_i + Z_i \leq L (1iN1 \leq i \leq N)。
  • 所有输入值均为整数。

子任务

  1. (4 分) N=2,K=2N = 2, K = 2
  2. (5 分) L100,N100L \le 100, N \le 100
  3. (5 分) L1000L \le 1\,000
  4. (7 分) N2000N \le 2\,000
  5. (10 分) Xi=0X_i = 0 (1iN),K=1(1 \le i \le N), K = 1
  6. (10 分) Xi=0X_i = 0 (1iN)(1 \le i \le N)
  7. (23 分) K=1K = 1
  8. (18 分) K2K \le 2
  9. (18 分) 无额外限制。