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

题目描述

JOI 国是一个边长为 $L$ 的正三角形,其顶点为点 $A, B$ 和 $C$。这里 $L$ 是一个正整数。边 $AB$ 在东西方向上连接顶点 $A$ 和 $B$,顶点 $A$ 是 JOI 国最西端的一点,而顶点 $B$ 是最东端的一点。顶点 $C$ 是 JOI 国最北端的一点。 JOI 国被划分为 $L^2$ 个区域,每个区域都是一个边长为 $1$ 的正三角形。作为某个区域顶点的点被称为格点。对于满足 $0 \leq y \leq L$ 且 $0 \leq x \leq L-y$ 的整数 $x, y$,从南数第 $(1+y)$ 个、从西数第 $(1+x)$ 个的格点记作 $(x, y)$。特别地,$A, B$ 和 $C$ 分别记作 $(0,0), (L, 0)$ 和 $(0, L)$。例如,下图显示了 $L=5$ 时的区域和格点。 ::::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/dswrpzwj.png) :::: 在 JOI 国,已经公布了未来 $N$ 天的天气预报。在第 $i$ 天,预报降雨将落在以格点 $(X_i, Y_i), (X_i + Z_i, Y_i)$ 和 $(X_i, Y_i + Z_i)$ 为顶点的三角形区域 $T_i$ 内。如果一个区域完整地包含在 $T_i$ 中,则称该区域在第 $i$ 天被预报有雨。 为了应对降雨引起的灾害,有必要针对每个 $k = 1, 2, \dots, K$,确定预报有至少 $k$ 天降雨的区域数量。 给定 JOI 国的大小、天气预报以及 $K$,请编写一个程序,对于每个 $k = 1, 2, \dots, K$,计算预报有至少 $k$ 天降雨的区域数量。

输入格式

输入通过标准输入以以下格式给出: > $L$ $N$ $K$\ > $X_1$ $Y_1$ $Z_1$\ > $X_2$ $Y_2$ $Z_2$\ > $\vdots$\ > $X_N$ $Y_N$ $Z_N$

输出格式

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

说明/提示

### 样例 1 如果我们图示每个区域预报有雨的天数,将得到下图。 ::::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/cmo33pej.png) :::: 该样例输入满足子任务 $1, 2, 3, 4, 8$ 和 $9$ 的限制条件。 ### 样例 2 如果我们图示每个区域预报有雨的天数,将得到下图。 ::::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/ezfob7rc.png) :::: 该样例输入满足子任务 $2, 3, 4$ 和 $9$ 的限制条件。 ### 限制条件 - $2 \leq L \leq 10^{9}$。 - $2 \leq N \leq 200000$。 - $1 \leq K \leq 5$。 - $0 \leq X_i \leq L$ ($1 \leq i \leq N$)。 - $0 \leq Y_i \leq L$ ($1 \leq i \leq N$)。 - $1 \leq Z_i \leq L$ ($1 \leq i \leq N$)。 - $X_i + Y_i + Z_i \leq L$ ($1 \leq i \leq N$)。 - 所有输入值均为整数。 ### 子任务 1. (4 分) $N = 2, K = 2$。 2. (5 分) $L \le 100, N \le 100$。 3. (5 分) $L \le 1\,000$。 4. (7 分) $N \le 2\,000$。 5. (10 分) $X_i = 0$ $(1 \le i \le N), K = 1$。 6. (10 分) $X_i = 0$ $(1 \le i \le N)$。 7. (23 分) $K = 1$。 8. (18 分) $K \le 2$。 9. (18 分) 无额外限制。