#include<bits/stdc++.h>
using namespace std;

const int maxn=505;
const long long inf=1000000000000000;
long long n;
long long w[maxn][maxn]={0},p[maxn][maxn]={0},tot[maxn][maxn]={0},dp[maxn][maxn]={0};
long long ans=inf;

long long getsum(int a,int b,int c,int d){
	return p[b][d]-(c==0?0:p[b][c-1])-(a==0?0:p[a-1][d])+(a==0||c==0?0:p[a-1][c-1]);
}

signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(i!=j)  cin>>w[i][j];
			
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			p[i][j]=p[i][j-1]+p[i-1][j]-p[i-1][j-1]+w[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			tot[i][j]=tot[i][j-1]+tot[i-1][j]-tot[i-1][j-1]+(i<j?w[i][j]:0);
			
	for(int i=1;i<=n;i++){
		dp[i][1]=tot[i][i]-tot[0][i]-tot[i][0]+tot[0][0];
		for(int j=2;j<=i;j++){
			dp[i][j]=inf;
			for(int k=1;k<=j-1;k++)
				dp[i][j]=min(dp[i][j],dp[j-1][k]+(tot[i][i]-tot[i][j-1]-tot[j-1][i]+tot[j-1][j-1])+getsum(j,i,0,k-1));
		}
	}
	
	for(int i=1;i<=n;i++)  ans=min(ans,dp[n][i]);
	cout<<ans;
	
	return 0;
}