p7472吃豆人 点18WA了
查看原帖
p7472吃豆人 点18WA了
765883
__Tao__楼主2022/8/21 17:08

死活找不到错因```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; }

2022/8/21 17:08
加载中...