该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
在一个二维坐标系中有 n 只老鼠。第 i 只老鼠位于 (xi,yi),携带 vi 枚金币。不同老鼠可能位于同一个坐标。
你可以选择某只老鼠所在的位置 (x,y) 作为攻击中心,发动一次十字形攻击:
- 对于所有满足 yi=y 且 ∣xi−x∣≤L1 的老鼠,攻击可以消灭它们;
- 对于所有满足 xi=x 且 ∣yi−y∣≤L2 的老鼠,攻击也可以消灭它们。
你可以获得所有被消灭老鼠携带的金币。同一只老鼠即使同时位于横向和纵向攻击范围内,其金币也只能计算一次。
请计算一次攻击最多能够获得多少枚金币。
输入格式
在文件 cross.in 中读入。
第一行包含三个正整数 n,L1,L2。
接下来 n 行,每行包含三个正整数 xi,yi,vi,表示第 i 只老鼠的位置和携带的金币数量。
输出格式
在文件 cross.out 中输出。
输出一行一个整数,表示一次攻击最多能够获得的金币数。
样例
样例输入 #1
8 7 6
1 3 5
4 6 7
1 7 8
6 5 7
4 6 9
6 7 10
11 5 3
11 7 16
样例输出 #1
41
样例 1 解释
选择 (6,7) 作为攻击中心。
- 横向可以消灭位于 (1,7)、(6,7)、(11,7) 的老鼠,获得 8+10+16=34 枚金币;
- 纵向可以消灭位于 (6,5)、(6,7) 的老鼠,获得 7+10=17 枚金币。
位于攻击中心 (6,7) 的老鼠被两个方向同时覆盖,但金币只能计算一次,因此总收益为
34+17−10=41.
数据范围
本题共 20 个测试点,每点 5 分。
- 测试点 1∼4:1≤n≤3000;
- 测试点 5∼8:1≤xi,yi≤1000;
- 测试点 9∼12:所有 xi=1,即所有老鼠位于同一列;
- 测试点 13∼20:无额外限制;
- 对于所有测试点:
1≤n≤5×105,
1≤xi,yi,vi,L1,L2≤109.
其他限制
- 时间限制:2 s;
- 空间限制:256 MiB。