死活找不到错因```cpp
#include <bits/stdc++.h>
using namespace std;
int n,m[1005][1005];
long long f[1005],max1,maxid1,max2,maxid2;
int fl(int x,int y){
return abs(x-y)+1;
}
int fr(int x,int y){
return n-abs(n-x-y+1);
}
int main() {
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&m[j][i]);
f[fl(j,i)]+=m[j][i];
if(fl(j,i)!=fr(j,i))
f[fr(j,i)]+=m[j][i];
}
}
for(int i=1;i<=n;i++){
if(f[i]>max1){
maxid1=i;
max1=f[i];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(fl(j,i)==maxid1||fr(j,i)==maxid1) {
//cout<<j<<" "<<i<<endl;
f[fl(j,i)]-=m[j][i];
if(fl(j,i)!=fr(j,i))
f[fr(j,i)]-=m[j][i];
}
}
}
for(int i=1;i<=n;i++){
if(f[i]>max2&&i!=maxid1){
maxid2=i;
max2=f[i];
}
}
cout<<max1+max2;
return 0;
}