题目信息
解题思路
前缀和模板,注意用来打擂台的变量初始值一定要小,数据没有保证∀a1<=i<=n>0,设为0只有90pts。
不太懂前缀和的童鞋出门右转
代码实现
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int a[N][N], s[N][N];
inline int get(int x1, int y1, int x2, int y2) {
return s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1];
}
int main() {
int n, m, c;
cin >> n >> m >> c;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> a[i][j];
s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + a[i][j];
}
}
int res = -1e9, x, y;
for (int i = 1; i + c - 1 <= n; ++i) {
for (int j = 1; j + c - 1 <= m; ++j) {
int t = get(i, j, i + c - 1, j + c - 1);
if (t > res) {
res = t;
x = i;
y = j;
}
}
}
cout << x << ' ' << y << '\n';
return 0;
}