题目链接
注意:
本题说的主对角线,但是实际要把副对角线也考虑在内。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+5;
int arr[maxn][maxn];
int main(){
	int m,sum,tmp;
	while(cin>>m){
		vector<int> ans;
		ans.clear();
		for(int i=0; i<m; i++){
			sum = 0;
			for(int j=0; j<m; j++){
				cin>>arr[i][j];
				sum += arr[i][j]; 
			}
			ans.push_back(sum);
		}
		
		for(int i=0; i<m; i++){
			sum = 0;
			for(int j=0; j<m; j++){
				sum += arr[j][i]; 
			}
			ans.push_back(sum);
		}
		sum = 0;
		tmp = 0;
		for(int i=0; i<m; i++){
			sum += arr[i][i];
			tmp += arr[i][m-i-1];
		}
		ans.push_back(sum);
		ans.push_back(tmp);
		sort(ans.rbegin(),ans.rend());
		for(auto it: ans){
			cout<<it<<" ";
		}
		cout<<endl;
	}
	return 0;
}