#3709. 十字架 (cross)

十字架 (cross)

题目描述

在一个二维坐标系中有 nn 只老鼠。第 ii 只老鼠位于 (xi,yi)(x_i,y_i),携带 viv_i 枚金币。不同老鼠可能位于同一个坐标。

你可以选择某只老鼠所在的位置 (x,y)(x,y) 作为攻击中心,发动一次十字形攻击:

  • 对于所有满足 yi=yy_i=y 且 ∣xi−x∣≤L1|x_i-x|\le L_1 的老鼠,攻击可以消灭它们;
  • 对于所有满足 xi=xx_i=x 且 ∣yi−y∣≤L2|y_i-y|\le L_2 的老鼠,攻击也可以消灭它们。

你可以获得所有被消灭老鼠携带的金币。同一只老鼠即使同时位于横向和纵向攻击范围内,其金币也只能计算一次。

请计算一次攻击最多能够获得多少枚金币。

输入格式

在文件 cross.in 中读入。

第一行包含三个正整数 n,L1,L2n,L_1,L_2。

接下来 nn 行,每行包含三个正整数 xi,yi,vix_i,y_i,v_i,表示第 ii 只老鼠的位置和携带的金币数量。

输出格式

在文件 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)(6,7) 作为攻击中心。

  • 横向可以消灭位于 (1,7)(1,7)、(6,7)(6,7)、(11,7)(11,7) 的老鼠,获得 8+10+16=348+10+16=34 枚金币;
  • 纵向可以消灭位于 (6,5)(6,5)、(6,7)(6,7) 的老鼠,获得 7+10=177+10=17 枚金币。

位于攻击中心 (6,7)(6,7) 的老鼠被两个方向同时覆盖,但金币只能计算一次,因此总收益为

34+17−10=41.34+17-10=41.

数据范围

本题共 2020 个测试点,每点 55 分。

  • 测试点 1∼41\sim4:1≤n≤30001\le n\le3000;
  • 测试点 5∼85\sim8:1≤xi,yi≤10001\le x_i,y_i\le1000;
  • 测试点 9∼129\sim12:所有 xi=1x_i=1,即所有老鼠位于同一列;
  • 测试点 13∼2013\sim20:无额外限制;
  • 对于所有测试点:
1≤n≤5×105,1\le n\le5\times10^5, 1≤xi,yi,vi,L1,L2≤109.1\le x_i,y_i,v_i,L_1,L_2\le10^9.

其他限制

  • 时间限制:2 s2\text{ s};
  • 空间限制:256 MiB256\text{ MiB}。