代码一贴
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
//freopen("pacman.in","r",stdin);
//freopen("pacman.out","w",stdout);
int n,cha2=0;
char cha='0';
cin>>n;
int a[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
int maxn=0,maxx=0,sum=0;
for(int i=0,j=0;i<n&&j<n;i++,j++)
{
sum+=a[i][j];
}
if(sum>maxn)
{
maxn=sum;
cha='z';
}
sum=0;
for(int i=n-1,j=0;i>=0&&j<n;i--,j++)
{
sum+=a[i][j];
}
if(sum>maxn)
{
maxn=sum;
cha='y';
}
sum=0;
for(int i=1;i<n-1;i++)
{
int j,k;
for(j=i,k=0;j<n;j++,k++)
{
sum+=a[k][j];
}
j-=2;
k--;
for(;k<n;j--,k++)
{
sum+=a[k][j];
}
j++;
k-=2;
for(;j>=0;k--,j--)
{
sum+=a[k][j];
}
j+=2;
k++;
for(;k>=0;j++,k--)
{
sum+=a[k][j];
}
if(sum>maxn)
{
maxn=sum;
cha='a';
cha2=i;
}
sum=0;
}
if(cha=='a')
{
int j,k;
for(j=cha2,k=0;j<n;j++,k++)
{
a[k][j]=0;
}
k--;
j-=2;
for(;k<n;j--,k++)
{
a[k][j]=0;
}
k-=2;
j++;
for(;j>=0;k--,j--)
{
a[k][j]=0;
}
j+=2;
k++;
for(;k>=0;j++,k--)
{
a[k][j]=0;
}
}
else if(cha=='y')
{
for(int i=n-1,j=0;i>=0&&j<n;i--,j++)
{
a[i][j]==0;
}
}
else if(cha=='z')
{
for(int i=0,j=0;i<n&&j<n;i++,j++)
{
a[i][j]=0;
}
}
sum=0;
for(int i=0,j=0;i<n&&j<n;i++,j++)
{
sum+=a[i][j];
}
if(sum>maxx)
{
maxn=sum;
}
sum=0;
for(int i=n-1,j=0;i>=0&&j<n;i--,j++)
{
sum+=a[i][j];
}
if(sum>maxx)
{
maxx=sum;
}
sum=0;
for(int i=1;i<n-1;i++)
{
int j,k;
for(j=i,k=0;;j++,k++)
{
if(j==n) break;
sum+=a[k][j];
}
j-=2;
k--;
for(;;j--,k++)
{
if(k==n) break;
sum+=a[k][j];
}
k-=2;
j++;
for(;;k--,j--)
{
if(j==-1) break;
sum+=a[k][j];
}
j+=2;
k++;
for(;;j++,k--)
{
if(k==0) break;
sum+=a[k][j];
}
if(sum>maxx)
{
maxx=sum;
}
}
cout<<maxn+maxx;
return 0;
}