91pts,悬关注 1 个
WA on Subtask0 #9 和 Subtask1 #1
#include <bits/stdc++.h>
using namespace std;
const int N = 5e3 + 5;
int n, m, nn, mm, maxn, mp[N][N], pre[N][N];
signed main() {
scanf("%d%d", &n, &m);
for (int i = 1, x, y, val; i <= n; ++ i) {
scanf("%d%d%d", &x, &y, &val);
nn = max(nn, x + 1);
mm = max(mm, y + 1);
mp[x + 1][y + 1] = val;
}
for (int i = 1, j; i <= nn; ++ i)
for (j = 1; j <= mm; ++ j)
pre[i][j] = pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1] + mp[i][j];
for (int i = 1, j; i <= nn - m + 1; ++ i) {
for (j = 1; j <= mm - m + 1; ++ j) {
int temp = pre[i + m - 1][j + m - 1] - pre[i - 1][j + m - 1] - pre[i + m - 1][j - 1] + pre[i - 1][j - 1];
maxn = max(maxn, temp);
}
}
printf("%d\n", maxn);
return 0;
}