/* ID: hk945801 LANG: C++ TASK: agrinet */ #include<iostream> #include<cstdio> using namespace std; int a[110][110],d[110],p[110]; int main(){ int i,j,k,m,n,ans; //freopen("agrinet.in","r",stdin); //freopen("agrinet.out","w",stdout); cin>>n; ans=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; for(i=1;i<=n;i++){ d[i]=1000000000; p[i]=0; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]); d[1]=0; int min; for(i=1;i<=n;i++){ min=1000000000; for(j=1;j<=n;j++) if(!p[j] && d[j]<min){ k=j; min=d[j]; } p[k]=1; ans+=d[k]; for(j=1;j<=n;j++) if(!p[j] && d[j]>a[j][k]) d[j]=a[j][k]; } cout<<ans<<endl; return 0; }