题目描述
package day;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 激光炸弹 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int m=5000;
//表示的是区域矩形的长度
int a[][]=new int [m][m];
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String p[]=bufferedReader.readLine().split(" ");
int n=Integer.parseInt(p[0]);
int r=Integer.parseInt(p[1]);
int ma=0;
for(int i=0;i<n;i++){
p=bufferedReader.readLine().split(" ");
int x=Integer.parseInt(p[0]);
int y=Integer.parseInt(p[1]);
ma=Math.max(ma, Math.max(x, y));
int w=Integer.parseInt(p[2]);
a[x][y]+=w;
}
//预处理前缀和
r=ma;
int res=0;
for(int i=r;i<=ma;i++){
for(int j=r;j<=ma;j++){
a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
}
}
for(int i=r;i<=ma;i++){
for(int j=r;j<=ma;j++){
res=Math.max(res, a[i][j]-a[i][j-r]-a[i-r][j]+a[i-r][j-r]);
}
}
System.out.println(res);
}
}