View Code of Problem 379

#include<iostream>
#include<Cstring>
using namespace std;
int main(){
	int n;
	while(cin>>n){
		int a[n+5][n+5],f[n+2],ans=0;
		memset(f,0,sizeof(f));
		for(int i=1;i<=n;++i)
			for(int m=1;m<=n;++m)
				cin>>a[i][m];
		for(int i=1;i<n;++i){
			int maxn=0x3f3f3f,x1,x2,flag=1;
			for(int m=1;m<=n;++m){
				for(int j=m+1;j<=n;++j){
					if(maxn>a[m][j]&&f[j]==0){
						maxn=a[m][j];
						x1=m;x2=j;
					}
				}
			}
			if(flag){
				f[x1]=1;flag=0;
			}
			f[x2]=1;
			ans+=maxn;
		}
		cout<<ans<<endl;
	}
}

Double click to view unformatted code.


Back to problem 379