求助各位大佬,为什么我加了特判还是不能通过,感谢
#include<bits/stdc++.h>
using namespace std;
const int M = 5010;
int s[M][M];
int main() {
int n, m;
cin >> n >> m;
int x, y, v;
int maxx = -1, maxy = -1;
for(int i = 1; i <= n; i++) {
cin >> x >> y;
cin >> s[x][y];
maxx = max(maxx, x);
maxy = max(maxy, y);
}
if(m > maxx && m > maxy) {
cout << s[maxx][maxy] << endl;
return 0;
}
if(m == 0 || n == 0) {
cout << 0 << endl;
return 0;
}
for(int i = 1; i <= maxx; i++) {
s[i][0] += s[i - 1][0];
}
for(int i = 1; i <= maxy; i++) {
s[0][i] += s[0][i - 1];
}
for(int i = 1; i <= maxx; i++) {
for(int j = 1; j <= maxy; j++) {
s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];
}
}
int ans = s[m - 1][m - 1];
for(int i = m; i <= maxx; i++) {
ans = max(ans, s[i][m - 1] - s[i - 1][m - 1]);
}
for(int i = m; i <= maxy; i++) {
ans = max(ans, s[m - 1][i] - s[m - 1][i - 1]);
}
for(int i = m; i <= maxx; i++) {
for(int j = m; j <= maxy; j++) {
ans = max(ans, s[i][j] - s[i - m][j] - s[i][j - m] + s[i - m][j - m]);
}
}
cout << ans << endl;
system("pause");
return 0;
}