记录
嘚马:
#include<cstdio>
int map[5002][5002];
int max(int a,int b)
{
return (a>b?a:b);
}
int main()
{
int n,m,i,j,mxx=0,mxy=0,rx,ry,w,mw=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;++i)
{
scanf("%d%d%d",&rx,&ry,&w);
map[rx+1][ry+1]=w;
mxx=max(mxx,rx+1);
mxy=max(mxy,ry+1);
}
for(i=1;i<=mxx;++i)
{
for(j=1;j<=mxy;++j)
{
map[i][j]+=map[i-1][j]+map[i][j-1]-map[i-1][j-1];
}
}
for(i=0;i<=mxx-m;++i)
{
for(j=0;j<=mxy-m;++j)
{
mw=max(mw,map[i+m][j+m]-map[i][j+m]-map[i+m][j]+map[i][j]);
}
}
printf("%d",mw);
return 0;
}