基建手游
题目描述
森林探险后小明打算在家中宅一阵子,他迷上了一款基建手游。
在浩瀚的布鲁克西大陆上,有一个神秘的王国,城主小明可以选择在这个王国里圈出一块占地K*K的正方形作为自己的城池,小明希望你选出一块合适的位置,使得他的城池土地价值和最大。
输入
第一行三个整数N,M,K,表示大陆的宽和长以及占地正方形的边长。
接下来有N行,每行M个整数,表示大陆上每个地块的价值,价值可能为负数。
1=<N, M<=1000, 1=<k<=min(N, M)
输出
一行两个整数X,Y表示小明城池左上角的坐标
样例输入
3 4 1
1 2 3 1
-1 9 0 2
2 0 1 1
样例输出
2 2
#include<iostream>
using namespace std;
int n,m,k;
int a[1005][1005],b[1005][1005];
int main() {
scanf("%d%d%d",&n,&m,&k);
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
scanf("%d",&a[i][j]);
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j]; //前缀和