80分,想不出哪有问题
查看原帖
80分,想不出哪有问题
759311
Furina_P楼主2024/10/13 10:40
#include<bits/stdc++.h>
using namespace std;
int a[2001][2001];
long long ss,mm=-1e18,n;
long long f(int x)
{
	ss=0;
	for(int i=x,j=1;i<=n;i++,j++)
	{
		ss+=a[i][j];
		mm=max(mm,ss);
	}
	ss=0;
	for(int i=x,j=n;i<=n;i++,j--)
	{
		ss+=a[i][j];
		mm=max(mm,ss);
	}
	return mm;
}
long long ff(int x)
{
	ss=0;
	for(int i=1,j=x;j<=n;i++,j++)
	{
		ss+=a[i][j];
		mm=max(mm,ss);
	}
	return mm;
}
long long fff(int x)
{
	ss=0;
	for(int i=1,j=x;j>=1;i++,j--)
	{
		ss+=a[i][j];
		mm=max(mm,ss);
	}
	return mm;
}
int main()
{
	long long m=-1e18;
	long long s=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cin>>a[i][j];
	}
	for(int i=1;i<=n;i++)
	{
		s=0;
		for(int j=1;j<=n;j++)
			s+=a[i][j];
		m=max(m,s);
	}
	for(int j=1;j<=n;j++)
	{
		s=0;
		for(int i=1;i<=n;i++)
			s+=a[i][j];	
		m=max(m,s);
	}
	for(int i=n;i>1;i--)
		m=max(m,f(i));
	for(int j=1;j<n;j++)
		m=max(m,ff(j));
	for(int j=n;j>1;j--)
		m=max(m,fff(j));
	cout<<m;
}
2024/10/13 10:40
加载中...