1 #include<iostream>
2 #include<string.h>
3 #include<stdio.h>
4 using namespace std;
5
6 const int maxn=305;
7 const int INF=0xffffff;
8
9 int G[maxn][maxn];
10 int a[maxn];
11 int sum;
12 int n;
13 int vis[maxn];
14
15 int tree()
16 {
17 for(int i=0;i<n;i++)
18 a[i]=INF;
19 a[0]=0;
20 for(int i=0;i<n;i++)
21 {
22 int min=INF;
23 int ii=0;
24
25 for(int j=0;j<n;j++)
26 if(vis[j]==0&&a[j]<min)
27 {
28 min=a[j];
29 ii=j;
30 }
31
32 vis[ii]=1;
33 sum+=a[ii];
34
35 for(int k=0;k<n;k++)
36 if(G[ii][k]<a[k])
37 a[k]=G[ii][k];
38 }
39 }
40
41 int main()
42 {
43 std::ios::sync_with_stdio(false);
44 //freopen("aa.txt","r",stdin);
45 while(cin>>n)
46 {
47 memset(vis,0,sizeof(vis));
48
49 for(int i=0;i<n;i++)
50 {
51 for(int j=0;j<n;j++)
52 {
53 cin>>G[i][j];
54 }
55 }
56
57 sum=0;
58 tree();
59 cout<<sum<<endl;
60 }
61 }