T2
  • 板块灌水区
  • 楼主SunXiaoping
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/3/27 18:03
  • 上次更新2023/11/5 01:30:05
查看原帖
T2
478528
SunXiaoping楼主2021/3/27 18:03
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
inline void write(int x)
{
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
int n,a[1001][1001],sum[100001],sum1,sum2,ans1,ans2,ans;
int main()
{
	freopen("pacman.in","r",stdin);
	freopen("pacman.out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			a[i][j]=read();
		}
	}
	int i=1,j=1;
	while(i<=n&&j<=n)
	{
		sum1+=a[i][j];
		i++;
		j++;
	}
	i=n;
	j=n;
	while(i>=1&&j>=1)
	{
		sum2+=a[i][j];
		i--;
		j--;
	}
	ans1=max(sum2,sum1);
	for(int k=2;k<=n-1;k++)
	{
		int i=1,j=k;
		while(i<=n&&j<=n)
		{
			sum[k]+=a[i][j];
			i++;
			j++;
		}
		i--,j--;
		sum[k]-=a[i][j];
		while(i<=n&&j>=1)
		{
			sum[k]+=a[i][j];
			i++;
			j--;
		}
		j++;
		i--;
		sum[k]-=a[i][j];
		while(i>=1&&j>=1)
		{
			sum[k]+=a[i][j];
			i--;
			j--;
		}
		i++;
		j++;
		sum[k]-=a[i][j];
		while(i>1&&j<=n)
		{
			sum[k]+=a[i][j];
			i--;
			j++;
		}
	}
	sort(sum+2,sum+n,greater<int>());
	cout<<sum[2]+max(sum[3],ans1);
}
/*
4
20 1 19 2
3 18 4 17
16 5 15 6
7 14 8 13
*/

哪几个点重复了啊?调了好久都不知道

2021/3/27 18:03
加载中...