#include<stdio.h> #define max 999999 #define N 1000 int dis[N],vis[N],map[N][N]; int sum,n; void prim(int x) { int i,j,k; for(i=0;i<n;i++) { dis[i]=map[x][i]; vis[i]=0; } vis[x]=1; dis[x]=0; for(i=1;i<n;i++) { int min=max; for(j=0;j<n;j++) { if(!vis[j]&&dis[j]<min) { min=dis[j]; k=j; } } vis[k]=1; sum+=min; for(j=0;j<n;j++) { if(!vis[j]&&dis[j]>map[k][j]) { dis[j]=map[k][j]; } } } } int main() { int t,i,j,b; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%d",&b); map[i][j]=b; } } sum=0; prim(0); printf("%d\n",sum); } }