80求助 点12,13,15,18
查看原帖
80求助 点12,13,15,18
223460
hanxinsd楼主2021/4/16 20:54

好哥哥们

80求助

点12,13,15,18

我是菜b

#include<bits/stdc++.h>
using namespace std;
int a[1001][1001],n,ji[1001],cong[1001][1001],ma=-1;
int main(){
	int i,j;
	cin>>n;
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(i=1;i<=n;i++){
		if(i==1){
			for(j=1;j<=n;j++){
				ji[i]=ji[i]+a[j][j];
			}
		}
		else{
			if(i==n){
				for(j=1;j<=n;j++){
					ji[i]=ji[i]+a[j][n-j+1];
				}
			}
			else{
				for(j=i;j<=n;j++){
					ji[i]=ji[i]+a[j-i+1][j];
					ji[i]=ji[i]+a[j][j-i+1];
				}
				for(j=2;j<=i-1;j++){
					ji[i]=ji[i]+a[i+1-j][j];
					ji[i]=ji[i]+a[n+1-(i+1-j)][n+1-j];
				}
			}
		}
	}
	if(n%2==0){
		cong[1][n]=0;
	}
	else{
		cong[1][n]=a[(1+n)/2][(1+n)/2];
	}
	for(i=1;i<=n;i++){
		for(j=i+1;j<=n;j++){
			if((i+j)%2==1){
				cong[i][j]=0;
			}
			else{
				if(!(i==1&&j==n)){
					cong[i][j]=a[(i+j)/2][(i+j)/2]+a[n-(i+j)/2+1][n+1-(i+j)/2];
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		for(j=i+1;j<=n;j++){
			int g=ji[i]+ji[j]-cong[i][j];
			if(g>ma){
				ma=g;
			}
		}
	}
	cout<<ma;
}
2021/4/16 20:54
加载中...