RT,7,12,13 WA了
#include <bits/stdc++.h>
#define Heriko return
#define Deltana 0
#define LL long long
#define R register
#define I inline
using namespace std;
LL n,a[1015][1015],num[1015],ans;
bool vis[1015][1015];
signed main()
{
memset(vis,false,sizeof(vis));
scanf("%lld",&n);
for(R LL i=1;i<=n;i++)
for(R LL j=1;j<=n;j++)
scanf("%lld",&a[i][j]);
for(R LL i=1;i<=n;i++)
{
if(i==1)
{
for(R LL j=1;j<=n;j++) num[i]+=a[j][j];
continue;
}
else if(i==n)
{
for(R LL j=n;j>=1;j--) num[i]+=a[n-j+1][j];
continue;
}
LL z=i-1;
for(R LL j=i;j<=n;j++) num[i]=num[i]+a[j-z][j]+a[j][j-z];
LL x=n+n-z;
for(R LL j=n-1;j>x-n;j--) num[i]=num[i]+a[x-j][j]+a[n-(x-j)+1][n-j+1];
}
for(R LL i=1;i<=n;i++)
{
for(R LL j=i;j<=n;j++)
{
if(i!=j && !vis[i][j])
{
vis[i][j]=vis[j][i]=true;
LL temp=num[i]+num[j];
if(n<=2)
{
ans=max(temp,ans);
continue;
}
if(n==3 && i==1 && j==n)
{
ans=max(temp-a[2][2],ans);
continue;
}
if((i+j)%2==0)
{
LL x1=1+(abs(i-j))/2,y1=(i+j)/2;
LL x2=n+1-x1,y2=n+1-y1;
printf("(%lld,%lld) (%lld,%lld) (%lld,%lld) (%lld,%lld)\n",x1,y1,y1,x1,x2,y2,y2,x2);
temp=temp-a[x1][y1]-a[x2][y2];
if(x1!=y1) temp=temp-a[y1][x1];
if(x2!=y2) temp=temp-a[y2][x2];
}
ans=max(temp,ans);
}
}
}
printf("%lld",ans);
Heriko Deltana;
}