样例过了。
简单的二维前缀和,哪里错了呢?
#include<bits/stdc++.h>
using namespace std;
int n,m,c;
int a[2000][2000],dp[2000][2000];
int main(){
cin>>n>>m>>c;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
dp[i][j]=dp[i-1][j]+dp[i][j-1]+a[i][j]-dp[i-1][j-1];
}
}
int x=-10000000,y=-10000000,ans=-100000000;
for(int i=1;i<=n-c;i++){
for(int j=1;j<=m-c;j++){
if(ans<dp[i+c][j+c]-dp[i-1][c+j]-dp[i+c][j-1]+dp[i-1][j-1]){
x=i;y=j;ans=dp[i+c][j+c]-dp[i-1][c+j]-dp[i+c][j-1]+dp[i-1][j-1];
}
}
}
cout<<x<<" "<<y;
}