CF1852F Panda Meetups

题目描述

红熊猫来到小镇与它们的亲戚蓝熊猫见面!小镇被建模为一条数轴。 熊猫们已经计划好了见面,但日程一直在变动。你将得到 $q$ 次更新,形式为 $x\ t\ c$。 - 如果 $c < 0$,表示有 $|c|$ 只红熊猫在位置 $x$、时间 $t$ 进入数轴。之后,每只红熊猫每单位时间可以独立地向数轴任意方向移动一格,或者不动。 - 如果 $c > 0$,表示有 $c$ 只蓝熊猫在时间 $t$ 检查位置 $x$ 是否有红熊猫。如果某只蓝熊猫在该位置该时间没有遇到红熊猫,它会立刻沮丧地离开数轴。如果有红熊猫在同一位置同一时间,蓝熊猫和红熊猫会结成友谊并一起离开数轴。每只红熊猫最多只能与一只蓝熊猫结成友谊,反之亦然。 所有更新按 $x$ 的非递减顺序给出。每次更新后,请输出在所有已给出的更新(包括本次更新)下,红熊猫最优移动方案下最多能结成多少对友谊。 红熊猫的移动顺序可以在不同的更新之间改变。

输入格式

第一行包含一个整数 $q$($1 \leq q \leq 2 \times 10^5$),表示更新次数。 接下来的 $q$ 行,每行包含三个整数 $x_i$、$t_i$ 和 $c_i$($0 \leq x_i \leq 10^9$,$0 \leq t_i \leq 10^9$,$0 < |c_i| \leq 1000$),表示第 $i$ 次更新的描述。 保证 $x_i$ 按非递减顺序给出。

输出格式

每次更新后,输出当前最多能结成多少对友谊。

说明/提示

在第一个样例中,每次更新后最多能结成的友谊数如下: 1. 现在有 $3$ 只蓝熊猫在位置 $0$、时间 $6$ 检查是否有红熊猫。此时还没有红熊猫,所以没有友谊。 2. 现在有 $5$ 只红熊猫在位置 $4$、时间 $2$ 出现。$4$ 只红熊猫可以赶到位置 $0$、时间 $6$,其中 $3$ 只可以与现有的 $3$ 只蓝熊猫结成友谊。 3. 现在有 $6$ 只红熊猫在位置 $7$、时间 $4$ 出现。没有新的蓝熊猫加入,所以最多的友谊数仍然是 $3$。 4. 现在有 $100$ 只蓝熊猫在位置 $10$、时间 $5$ 出现。没有红熊猫能在时间 $5$ 赶到那里,所以没有新的友谊产生。 5. 现在有 $7$ 只蓝熊猫在位置 $10$、时间 $8$ 出现。位置 $7$、时间 $4$ 的 $6$ 只红熊猫和位置 $4$、时间 $2$ 的 $1$ 只红熊猫可以赶到位置 $10$、时间 $8$,与 $7$ 只蓝熊猫结成友谊,新增 $7$ 对友谊。这样总共可以有 $10$ 对友谊。 由 ChatGPT 4.1 翻译