枚举 · 例10-激光炸弹
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题转译自 [HNOI 2003] 激光炸弹。
\hspace{15pt}有一种新型的激光炸弹,可以摧毁一个边长为 r 的正方形内的所有的目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围(即边长为 r 的正方形的边)必须和 x,y 轴平行。但是,如果目标位于爆破正方形的边上,该目标将不会被摧毁。
\hspace{15pt}现在二维平面上有 n 个目标,第 i 个目标由一个三元组 \{x_i,y_i,v_i\} 描述,这代表目标位于 (x_i,y_i) 这个位置,目标的价值为 v_i
\hspace{15pt}现在,你可以引爆一次激光炸弹,求解引爆后,可以摧毁的目标价值总和最大是多少。

输入描述:

\hspace{15pt}第一行输入两个整数 n,r \left(1 \leqq n \leqq 10^4;\ 1 \leqq r \leqq 10^3\right) 代表目标数量、激光炸弹的爆破范围。
\hspace{15pt}此后 n 行,第 i 行输入三个整数 x_i,y_i,v_i \left(0 \leqq x_i,y_i \leqq 5000;\ 1 \leqq v_i \leqq 100\right) 代表第 i 个目标的坐标、目标的价值。同一个坐标上可能存在多个目标。

输出描述:

\hspace{15pt}在一行上输出一个整数,代表引爆激光炸弹后,可以摧毁的目标价值总和的最大值。
示例1

输入

复制
3 1
0 0 1
1 1 1
1 1 1

输出

复制
1

说明

\hspace{15pt}在这个样例中,(1,1) 这个位置上存在两个目标,价值总和为 2 。轰炸掉这个位置是最优的。