#define ll long long
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int a[1005][1005], p[1005][1005];
int main() {
int n, m, c;
ll ans = -1, o=0, i=0;
scanf("%d%d%d", &n,&m,&c);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
scanf("%d", &a[i][j]);
}
}
int b = fmin(n, m);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
p[i][j] = p[i - 1][j] + p[i][j - 1] - p[i - 1][j - 1] + a[i][j];
}
}
for (int x1 = 1; x1 <= b-c+1; x1++) {
for (int y1 = 1; y1 <= b-c+1; y1++) {
int x = p[x1+c-1][y1+c-1] - p[x1 - 1][y1+c-1] - p[x1+c-1][y1 - 1] + p[x1 - 1][y1 - 1];
if (ans < x) {
ans = x;
o = x1, i = y1;
}
}
}
printf("%lld %lld\n",o,i);
return 0;
}
- 这里我只要一把最后一个用例输进去,我的vs就会崩溃,洛谷ide也显示输入不合法。想问问怎么回事?要怎么去改呢!?
- !!!我在发帖时,又随意改了两次ans的范围1000000和-1e9,发现后者又可以了。我还是不明白我看了测试数据似乎没有比我改的第一次还大的负数范围呀?