求助!救救孩子!10分WA
查看原帖
求助!救救孩子!10分WA
200696
DreamerPatrick楼主2021/3/31 13:18

代码一贴

#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;
}
2021/3/31 13:18
加载中...