RE!!!
查看原帖
RE!!!
482253
CZKWEN543楼主2022/10/11 21:33
#include<bits/stdc++.h>
using namespace std;

int n, a[1005][1005], cnt, ans;
priority_queue<pair<int, int> > q;
struct node{
	int num;
	int x;
	int y;
	int ans;
}d[1005];

void coint(){
	int p1;
	for(int i=1;i<=n;i++){
		++cnt;
		int j=1;
		while(i<n && j<n) d[cnt].num+=a[++i][++j], d[cnt].x=i, d[cnt].y=j;
		if(i==n && j==n) continue;
		while(i>1 && j<n) d[cnt].num+=a[--i][++j], d[cnt].x=i, d[cnt].y=j;
		if(i==1 && j==n) continue;
		while(i>1 && j>1) d[cnt].num+=a[--i][--j], d[cnt].x=i, d[cnt].y=j;
		if(i==1 && j==1) continue;
		while(i<n && j>1) d[cnt].num+=a[++i][--j], d[cnt].x=i, d[cnt].y=j;
		q.push(make_pair(d[cnt].num, cnt));
		cout<<d[cnt].num<<"\n";
	}
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	coint();
	int x1=q.top().first;
	int y1=q.top().second;
	q.pop();
	int x2=q.top().first;
	int y2=q.top().second;
	for(int i=1;i<=d[y1].ans;i++){
		ans+=d[y1].num;
		for(int j=1;j<=d[y2].ans;j++){
			if(d[y1].x!=d[y2].x || d[y1].y!=d[y2].y) ans+=d[y2].num;
		}
	}
	cout<<ans;
	return 0;
}
2022/10/11 21:33
加载中...