#include <iostream>
using namespace std;
const int N = 5010;
int n = 5005,m,r;
int sum[N][N];
int max (int a,int b) {
    return a > b ? a : b;
}
int get (int x1,int y1,int x2,int y2) {
    return sum[x2][y2] - sum[x1 - 1][y2] - sum[x2][y1 - 1] + sum[x1 - 1][y1 - 1];
}
int main () {
    cin >> m >> r;
    int maxx,maxy;
    for (int i = 1;i <= m;i++) {
        int x,y,w;
        cin >> x >> y >> w;
        x++,y++;
        maxx = max (maxx,x);
        maxy = max (maxy,y);
        sum[x][y] += w;
    }
    for (int i = 1;i <= n;i++) {
        for (int j = 1;j <= n;j++) sum[i][j] += sum[i][j - 1] + sum[i - 1][j] - sum[i - 1][j - 1];
    }
    if (r >= maxx && r >= maxy) {
        cout << sum[n][n] << endl;
        return 0;
    }
    int ans = 0;
    for (int i = 1;i + r - 1 <= n;i++) {
        for (int j = 1;j + r - 1 <= n;j++) ans = max (ans,get (i,j,i + r - 1,j + r - 1));
    }
    cout << ans << endl;
    return 0;
}

0 条评论

目前还没有评论...