枚举 · 例10-激光炸弹
#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int a[N][N];
signed main(){
int n, r; cin >> n >> r;
for(int i = 1; i <= n; ++i){
int x, y, v; cin >> x >> y >> v;
a[x+1][y+1] = v;
}
for(int i = 1; i <= 5009; ++i)
for(int j = 1; j <= 5009; ++j)
a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1];
int maxv = INT_MIN;
for(int i = r; i <= 5009; ++i)
for(int j = r; j <= 5009; ++j)
maxv = max(maxv, a[i][j] - a[i-r][j] - a[i][j-r] + a[i-r][j-r]);
cout << maxv << endl;
return 0;
}