semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
/*          ?????????
??????      2010.12.07        */

int a[101][101], n, b[101][101];//??????
void f()
{   
    int i, j, k, num, ans = 0, min;
    num = n;
    while(num >= 2)
    {
		for(i = 1; i <= num; i++)
		{
			min = a[i][1];
			for(j = 1; j <= num; j++)
				if(a[i][j] < min)
					min = a[i][j];//????????
			for(j = 1; j <= num; j++)
				a[i][j] -= min; //?????
		}
		for(j = 1; j <= num; j++)
		{
			min = a[1][j];
			for(i = 1; i <= num; i++)
				if(a[i][j] < min)
					min = a[i][j];//????????
			for(i = 1; i <= num; i++)
				a[i][j] -= min; 
		}
		ans += a[2][2];//??
		b[1][1] = a[1][1];
		for(i = 2; i <= num - 1; i++)
			b[i][1] = a[i + 1][1];
		for(i = 2; i <= num - 1; i++)
			b[1][i] = a[1][i + 1];
		for(i = 2; i <= num - 1; i++)
			for(j = 2; j <= num - 1; j++)
				b[i][j] = a[i + 1][j + 1];//?b??a????????????
		for(i = 1; i <= num - 1; i++)
			for(j = 1; j <= num - 1; j++)
				a[i][j] = b[i][j];//?a??
		num--;//????1
        }
        cout << ans << endl;
	}
        
int main()
{
	int i, j, k;
	cin >> n;
	for(k = 1; k <= n; k++)
	{
		for(i = 1; i <= n; i++)
			for(j = 1; j <= n; j++)
				cin >> a[i][j];//????
		f();
	}
	return 0;
}
void main()
{
	int m,N,n,o,i,j,r,a[200][200]={0};  scanf("%d",&n);for(N=1;N<=n;N++)
{r=0;
for(i=0;i<=n-1;i++)for(j=0;j<=n-1;j++)scanf("%d",&a[i][j]);    for(m=0;m<=n-2;m++)
{
	for(i=0;i<=n-1;i++){{if((i>=1)&&(i<=m)){i=m;continue;}}
		o=a[i][0];   for(j=1;j<=n-1;j++){{if((j>=1)&&(j<=m)){j=m;continue;}}o=(o<=a[i][j])?o:a[i][j];} 
		for(j=0;j<=n-1;j++){{if((j>=1)&&(j<=m)){j=m;continue;}}a[i][j]=a[i][j]-o;}}
	for(j=0;j<=n-1;j++){{if((j>=1)&&(j<=m)){j=m;continue;}}
		o=a[0][j];   for(i=1;i<=n-1;i++){{if((i>=1)&&(i<=m)){i=m;continue;}}o=(o<=a[i][j])?o:a[i][j];} 
		for(i=0;i<=n-1;i++){{if((i>=1)&&(i<=m)){i=m;continue;}}a[i][j]=a[i][j]-o;}}
r=r+a[1+m][1+m];
}
printf("%d\n",r);
}

}
int main(){
int n,i,b,j,k,a,su[100][100],result;
scanf("%d",&n);
b=n;
for(i=0;i<n;i++){
	result=0;
	for(j=0;j<n;j++)
		for(k=0;k<n;k++)
			scanf("%d",&su[j][k]);
		
		while(n>1){
for(j=0;j<n;j++){
   a=su[j][0];
	for(k=0;k<n;k++){
	if(a>su[j][k])
		a=su[j][k];
	}
	for(k=0;k<n;k++){
	su[j][k]-=a;
	}
}
for(k=0;k<n;k++){
	a=su[0][k];
	for(j=0;j<n;j++){
	if(a>su[j][k])
		a=su[j][k];
	}
	for(j=0;j<n;j++){
	su[j][k]-=a;
	}
}
result+=su[1][1];
for(j=0;j<n-1;j++){
	for(k=0;k<n-1;k++){
if(j==0 && k>0)
su[j][k]=su[j][k+1];
else if(k==0 && j>0)
su[j][k]=su[j+1][k];
else if(j>0 && k>0)
su[j][k]=su[j+1][k+1];
}}
n--;
}
printf("%d\n",result);
n=b;
}
return 0;
}
int main()
{
    int n;                 //??n
    cin>>n;                 //??n
    int q;               //??q
    q=n;              //?n????q
    int a[150][150],sum=0,i,j,k,l,m,p,min;          //??????a,??sum,????i,j,k,l,m,p,???min
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
           for(k=0;k<n;k++)
           {
               cin>>a[j][k];           //???i???????
           }
        }
        while(n!=1)            //?n??1????????
       {
        for(j=0;j<n;j++)
           {
               min=a[j][0];
               for(l=1;l<n;l++)
           {
               if(min>a[j][l])
               min=a[j][l];           //???????
           }
           for(m=0;m<n;m++)
           {
               a[j][m]=a[j][m]-min;     //????????
           }
       }
       for(j=0;j<n;j++)
       {
           min=a[0][j];
           for(l=1;l<n;l++)
           {
               if(min>a[l][j])       //???????
               min=a[l][j];
           }
           for(m=0;m<n;m++)
           {
               a[m][j]=a[m][j]-min;     //????????
           }
       }
           sum=sum+a[1][1];          //?sum?????????
          for(p=2;p<n;p++)
         {
           a[0][p-1]=a[0][p];          //?????????????
           a[p-1][0]=a[p][0];          //?????????????
         }
            for(j=2;j<n;j++)
         {
           for(l=2;l<n;l++)
           {
               a[j-1][l-1]=a[j][l];          //??????????-1
           }
         }
          n--;                               //n?1
       }
        cout<<sum<<endl;                      //??sum
      sum=0;                               //sum??
      n=q;                                 //n?????n?
    }
    return 0;
}
int main()
{
	int a[110][110];
	int n,i,j,k,l;
	int min;
	int x=0;
	cin>>n;
	for(l=0;l<=n-1;++l)
	{
		for(i=0;i<=n-1;++i)
		{
	       for(j=0;j<=n-1;++j)
		   {
		      	cin>>a[i][j];
		   }
		}
	    x=0;
	    for(k=0;k<=n-2;++k)
		{
	        for(i=0;i<=n-k-1;++i)
			 {
	           	min=a[i][0];
		        for(j=0;j<=n-k-1;++j)
				{
			       if(a[i][j]<min)
				   {
				      min=a[i][j];
				   }
				} 
		        for(j=0;j<=n-k-1;++j)
				{
		       	   a[i][j]-=min;
				}
			 } 
			for(j=0;j<=n-k-1;++j)
			 {
				min=a[0][j];
				for(i=0;i<=n-k-1;++i)
				{
			       if(a[i][j]<min)
				   {
			       	min=a[i][j];
				   }
				}
		      for(i=0;i<=n-k-1;++i)
				  a[i][j]-=min;
			} 
			x+=a[1][1];
	    for(j=2;j<=n-k-1;++j)
		{
	        	a[0][j-1]=a[0][j];
		}
	   for(i=2;i<=n-k-1;++i)
	{
		a[i-1][0]=a[i][0];
	}
	for(i=2;i<=n-k-1;++i)
	{
		for(j=2;j<=n-k-1;++j)
		{
			a[i-1][j-1]=a[i][j];
		}
	}
	}
	cout<<x<<endl;
	}
	return 0;
}
int n;
int board[100][100];
void Subduction(int);
int sum;
int main()
{
    int i;
    cin >> n;
    for (i=0;i<=n-1;i++)
    {
        sum=0;
        int j,k;
        for (j=0;j<=n-1;j++)
        {
            for (k=0;k<=n-1;k++)
            {
                cin >> board[j][k];
            }
        }
       
        Subduction(n);
    }
   
               return 0;
}

void Subduction(int m)
{
     if (m==1)
     {
         cout << sum << endl;
     }
     else
     {
     int rowmin[100];
     int colmin[100];
     int p,q;
     for (p=0;p<=m-1;p++)
     {
         rowmin[p]=board[p][0];
         for (q=0;q<=m-1;q++)
         {
             if (board[p][q]<rowmin[p])
             {
                 rowmin[p]=board[p][q];
             }
         }
     }
     
     for (p=0;p<=m-1;p++)
     {
         for (q=0;q<=m-1;q++)
         {
             board[p][q]-=rowmin[p];
         }
     }
     for (q=0;q<=m-1;q++)
     {
         colmin[q]=board[0][q];
         for (p=0;p<=m-1;p++)
         {
             if (board[p][q]<colmin[q])
             {
                 colmin[q]=board[p][q];
             }
         }
     }
     
     for (q=0;q<=m-1;q++)
     {
         for (p=0;p<=m-1;p++)
         {
             board[p][q]-=colmin[q];
         }
     }
     sum+=board[1][1];
     for (q=1;q<=m-2;q++)
     {
         board[0][q]=board[0][q+1];
     }
     for (p=1;p<=m-2;p++)
     {
         board[p][0]=board[p+1][0];
     }
     for (p=1;p<=m-2;p++)
     {
         for (q=1;q<=m-2;q++)
         {
             board[p][q]=board[p+1][q+1];
         }
     }
     Subduction(m-1);
     }
}
void guiling(int a[][100], int);
void xiaojian(int a[][100], int);
int main()
{
    int n, a[100][100], k, i, j, sum;
	cin >> n;
	for(k = 0; k < n; k++)
	{
		sum = 0;
		for(i = 0; i < n; i++)
			for(j = 0; j < n; j++)
				cin >> a[i][j];                //??n*n???
		for(int t = 0; t < n - 1; t++)         //??????n-1?????
		{
			guiling(a, n - t);				   //????????????????????????????1
			sum += a[1][1];                    //????????a[1][1]??????
			xiaojian(a, n - t);                //????????????
		}
		cout << sum << endl;                   //???????
	}
    return 0;
}
void guiling(int a[][100], int n)
{
	int i, j, min;
	for(i = 0; i < n; i++)
	{
		min = a[i][0];
		for(j = 0; j < n; j++)
			if(min > a[i][j])
				min = a[i][j];                 //???????????
		for(j = 0; j < n; j++)
			a[i][j] -= min;                    //?????????
	}
	for(i = 0; i < n; i++)
	{
		min = a[0][i];
		for(j = 0; j < n; j++)
			if(min > a[j][i])
				min = a[j][i];                 //???????????
		for(j = 0; j < n; j++)
			a[j][i] -= min;                    //?????????
	}
}
void xiaojian(int a[][100], int n)
{
	int i, j, k;
	for(i = 0; i < n; i++)
		for(j = 2; j < n; j++)
			a[i][j - 1] = a[i][j];             //??n-2?????????????????
	for(i = 2; i < n; i++)
		for(j = 0; j < n; j++)
			a[i - 1][j] = a[i][j];             //??n-2?????????????????
}
int fa(int a[][101],int n)
{
    if(n==1) return 0;
    int i,j,min,t;
    for(i=1;i<=n;i++)
    {
        min=a[i][1];
        for(j=2;j<=n;j++)
        {
            if(a[i][j]<min)
            min=a[i][j];
        }
        for(j=1;j<=n;j++) a[i][j]=a[i][j]-min;
    }
    for(i=1;i<=n;i++)
    {
        {
            min=a[1][i];
            for(j=2;j<=n;j++)
            {
                if(a[j][i]<min)
                {
                    min=a[j][i];
                }
            }
            for(j=1;j<=n;j++) a[j][i]=a[j][i]-min;
        }
    }
    t=a[2][2];
    for(i=2;i<n;i++)
    {
        a[1][i]=a[1][i+1];
        a[i][1]=a[i+1][1];
        for(j=2;j<n;j++) a[i][j]=a[i+1][j+1];
    }
    return t+fa(a,n-1);
}
main()
{
    int n,k,i,j,a[101][101];
    scanf("%d",&n);
    for(k=1;k<=n;k++)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++) scanf("%d",&a[i][j]);
        }
    printf("%d\n",fa(a,n));
    }
}
//************************************************
// file: 2.cpp
// description: ?????????
// date: 2012-11-24
// author: ?? 1200012858
//************************************************
void zero( int array[100][100]);
void subduction( int array[100][100]);
int num, array[100][100];
int main()
{
	int n, i, j, k, sum;
	cin >> n;
	for (k = 0; k < n; k++)
	{
		sum = 0;
		num = n;
	    for (i = 0; i < n; i++)
		   for (j = 0; j < n; j++)
		  	  cin >> array[i][j];
	    for (i = 1; i < n; i++)
	    {
		   zero(array);
		   sum = sum + array[1][1];
		   subduction(array);
	    }
	    cout << sum << endl;
	}
	return 0;
}
void zero(int array[100][100])
{
	int i, j, minuend;
	for (i = 0; i < num; i++)
	{
		minuend = array[i][0];
		for (j = 0; j < num; j++)
			if (array[i][j] < minuend)
				minuend = array[i][j];
		for (j = 0; j < num; j++)
			array[i][j] = array[i][j] - minuend;
	}
	for (i = 0; i < num; i++)
	{
		minuend = array[0][i];
		for (j = 0; j < num; j++)
			if (array[j][i] < minuend)
				minuend = array[j][i];
		for (j = 0; j < num; j++)
			array[j][i] = array[j][i] -minuend;
	}
};

void subduction( int array[100][100])
{
	int i, j, k;
	for (i = 2; i < num; i++)
		for (j = 0; j < num; j++)
			array[i - 1][j] = array[i][j];
	for (i = 2; i < num; i++)
		for (j = 0; j < num; j++)
			array[j][i - 1] = array[j][i];
	num--;
};
int n, m;
int a[maxn][maxn], b[maxn][maxn];
int ans = 0;

void checkline(int p, int n) {
  int tmin = infinity;
  for(int j = 0; j < n; j++)
    if (a[p][j] < tmin) tmin = a[p][j];
  for(int j = 0; j < n; j++)
    a[p][j] -= tmin;     
}

void checkcol(int p, int n) {
  int tmin = infinity;
  for(int i = 0; i < n; i++)
    if (a[i][p] < tmin) tmin = a[i][p];
  for(int i = 0; i < n; i++)
    a[i][p] -= tmin;      
}
     

int main() {
    
//  freopen("input.txt", "rt", stdin);
//  freopen("output.txt", "wt", stdout);
    
  scanf("%d", &n);
  int tn = n;
  
  for(int ctn = 0; ctn < tn; ctn++) {
  
    ans = 0;
    n = tn;
  
  for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
      scanf("%d", &a[i][j]);
  
  ans = 0;
      
  while (n >= 2) {
    for(int i = 0; i < n; i++) checkline(i, n);
    for(int i = 0; i < n; i++) checkcol(i, n);
    ans += a[1][1];
  //  printf("a[1][1] = %d\n", a[1][1]);
    for(int i = 0; i < n; i++)
      for(int j = 1; j < n-1; j++)  a[i][j] = a[i][j+1];
    for(int j = 0; j < n; j++)
      for(int i = 1; i < n-1; i++)  a[i][j] = a[i+1][j];
    n --;      
  }
  
  //puts("=======================");
  
  printf("%d\n", ans);
  
  }    
  
  return 0;
    
}
int a[110][110];
int size;
int zero();
int main()
{
	int n,i;
	int x,y;
	cin>>n;
	for(i=0;i<n;i++)
	{
		size=n;
		for(x=0;x<n;x++)
			for(y=0;y<n;y++)
				cin>>a[x][y];
		int sum=0;
		for(x=1;x<=n-1;x++)
			sum+=zero();
		cout<<sum<<endl;
		//cin.get();
		//cin.get();
	}
	return 0;
}
int zero()
{
	int x,y,temp;
	for(x=0;x<size;x++)
	{
		for(y=1,temp=a[x][0];y<size;y++)
			if(a[x][y]<temp)
				temp=a[x][y];
		for(y=0;y<size;y++)
			a[x][y]-=temp;
	}
	for(y=0;y<size;y++)
	{
		for(x=1,temp=a[0][y];x<size;x++)
			if(a[x][y]<temp)
				temp=a[x][y];
		for(x=0;x<size;x++)
			a[x][y]-=temp;
	}
	temp=a[1][1];
	for(x=1;x<size-1;x++)
		for(y=0;y<size;y++)
			a[x][y]=a[x+1][y];
	for(y=1;y<size-1;y++)
		for(x=0;x<size-1;x++)
			a[x][y]=a[x][y+1];
	size-=1;
	return temp;
}
int main()
{
	int n ;
	cin >> n ;
	int i ;
	for (i = 0 ; i < n ; i++)   //?n??????
	{
		int j , k , l , x , a[100][100] , c[100][100] , temp ;   //j,k?????c[][]????a[][]????????
		for (j = 0 ; j < n ; j++)
			for (k = 0 ; k < n ; k++)
				cin >> a[j][k] ;
		int sum = 0 ;
		for (l = n - 1 ; l >= 1 ; l--)
		{
			for (j = 0 ; j <= l ; j++)
				for (k = 0 ; k <= l ; k++)
					c[j][k] = a[j][k] ;   //c[][]????a[][]
			for (j = 0 ; j <= l ; j++)
				for (x = 0 ; x <= l - 1 ; x++)
					for (k = 0 ; k <= l - 1 - x ; k++)  //?????????????c[j][0]
					{
						if (c[j][k] > c[j][k+1])
						{
							temp = c[j][k] ;
							c[j][k] = c[j][k+1] ;
							c[j][k+1] = temp ;
						}
					}
			for (j = 0 ; j <= l ; j++)
				for (k = 0 ; k <= l ; k++)
					a[j][k] -= c[j][0] ;   //???????
			for (j = 0 ; j <= l ; j++)
				for (k = 0 ; k <= l ; k++)
					c[j][k] = a[j][k] ;
			for (k = 0 ; k <= l ; k++)         //????????
				for (x = 0 ; x <= l - 1 ; x++)
					for (j = 0 ; j <= l - 1 - x ; j++)
					{
						if (c[j][k] > c[j+1][k])
							{
								temp = c[j][k] ;
								c[j][k] = c[j+1][k] ;
								c[j+1][k] = temp ;
							}
					}
			for (j = 0 ; j <= l ; j++)
				for (k = 0 ; k <= l ; k++)
					a[j][k] -= c[0][k] ;
			sum += a[1][1] ;        //???????a[1][1]
			for (j = 2 ; j <= l ; j++)
				for (k = 2 ; k <= l ; k++)
					a[j-1][k-1] = a[j][k] ;
			for (k = 2 ; k <= l ; k++)
				a[0][k-1] = a[0][k] ;
			for (j = 2 ; j <= l ; j++)
				a[j-1][0] = a[j][0] ;  //???????2??2?,???????
		}
		cout << sum << endl ;
	}
	return 0 ;
}
int main()
{
	int sim(int,int [][100]);
	int n=0,i=0,j=0,a[100][100];
	cin>>n;                       //??????
	for(int k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				cin>>a[i][j];
			}
		}                        //??????
		cout<<sim(n,a)<<endl;    //????????
	}
	return 0;
}                                //??n???
int sim(int n,int a[][100])
{
	int i=0,j=0,m1[100],m2[100],sum=0;
	if(n==1)
		return 0;                //????1????0
	else
		for(i=0;i<100;i++)       
		{
			m1[i]=99999;
			m2[i]=99999;
		}                        //???????????
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(a[i][j]<=m1[i])
				{
					m1[i]=a[i][j];
				}
			}
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				a[i][j]-=m1[i];
			}
		}                        //???
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(a[i][j]<=m2[j])
				{
					m2[j]=a[i][j];
				}
			}
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				a[i][j]-=m2[j];
			}
		}                       //???
		sum+=a[1][1];           //??
		for(i=0;i<n-1;i++)
		{
			for(j=0;j<n-1;j++)
			{
				if(i==0&&j==0)
					continue;
				else if(i==0)
					a[i][j]=a[i][j+1];
				else if(j==0)
					a[i][j]=a[i+1][j];
				else
					a[i][j]=a[i+1][j+1];
			}
		}                      //????
		sum+=sim(n-1,a);       //????
		return sum;            //????
}
int sum, a[101][101];
 void g0(int n)
{
	 if(n==1)return ;//??????????????0
	 else{
		int min;
	    for(int i=1;i<=n;i++)
			{
			min=a[i][1];
			for(int j=1;j<=n;j++)
					min=min<=a[i][j]?min:a[i][j];
			for(int j=1;j<=n;j++)
				a[i][j]-=min;
	        }//????????
	    for(int i=1;i<=n;i++)
				{
		min=a[1][i];
		for(int j=1;j<=n;j++)
				min=min<=a[j][i]?min:a[j][i];
		for(int j=1;j<=n;j++)
			a[j][i]-=min;
		        }//????????
	    sum+=a[2][2];//??
	    for(int i=2;i<=n-1;i++)
	    	for(int j=1;j<=n;j++)
	    		a[i][j]=a[i+1][j];//?????????????????
        for(int i=2;i<=n-1;i++)
	    	for(int j=1;j<=n;j++)
	    		a[j][i]=a[j][i+1];//?????????????
	 }
	 g0(n-1);//??????0??
}
int main(){
	int n;
cin>>n;
	for(int k=1;k<=n;k++){
	sum=0;
	memset(a,0,sizeof(a));
		for(int i=1;i<=n;i++)
		   for(int j=1;j<=n;j++)
      cin>>a[i][j];
	g0(n);
	cout<<sum<<endl;
	}
	return 0;

}
int an[1000][1000];

int hang[1000],lie[1000];
int main()
{
	int n;
	cin>>n;
	int i,j,k,l,p,q;
	
	for(l=0;l<n;l++)
	{
		
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
				cin>>an[i][j];
		} 

		int sum=0;

		for(k=n;k>0;k--)
		{
			
			for(p=0;p<k;p++)
			{
				hang[p]=an[p][0];
				for(q=0;q<k;q++)
				{
					if(hang[p]>an[p][q])
						hang[p]=an[p][q];
				}
				for(q=0;q<k;q++)
					an[p][q]=an[p][q]-hang[p];
			}
			
			for(q=0;q<k;q++)
			{
				lie[q]=an[0][q];
				for(p=0;p<k;p++)
				{
					if(lie[q]>an[p][q])
						lie[q]=an[p][q];
				}
				for(p=0;p<k;p++)
					an[p][q]=an[p][q]-lie[q];
			}		
			
		
			
			

			sum=sum+an[1][1];
			
			for(i=0;i<k;i++)
			{
				for(j=1;j<k;j++)
					an[i][j]=an[i][j+1];
			}
			for(i=1;i<k;i++)
			{
				for(j=0;j<k;j++)
					an[i][j]=an[i+1][j];
			}
			
		}
	cout<<sum<<endl;
	}
	return 0;
}
int a[105][105];//?????????? 
int f(int n){
	int i,j;
	int r=0,l=0;//????????? 
	if(n==1) 
             return 0;//?n = 1???0 
	else{//?? 
		for(i=0;i<n;i++){//?????? 
		r=a[i][0];
		for(j=1;j<n;j++){
			if(r>a[i][j])
				r=a[i][j];
		}
		for(j=0;j<n;j++){
			a[i][j]=a[i][j]-r;
            }
	}
	for(j=0;j<n;j++){//?????? 
		l=a[0][j];
		for(i=1;i<n;i++){
			if(l>a[i][j])
				l=a[i][j];
		}
		for(i=0;i<n;i++){
			a[i][j]=a[i][j]-l;
            }
	}
	int m;
	m=a[1][1];//??a[1][1]
	for(i=0;i<n;i++)//?????????
		for(j=1;j<n-1;j++)
			a[i][j]=a[i][j+1];
	for(j=0;j<n;j++)
		for(i=1;i<n-1;i++)
			a[i][j]=a[i+1][j];
	return m+f(n-1);//??
	}
}
int main(){//?????
	int n;
	int i,j,k;
	cin >> n;
	for(i=1;i<=n;i++){
		for(j=0;j<n;j++)
			for(k=0;k<n;k++){
				cin >> a[j][k];
			}
		int sum=0;
		sum=f(n);
		cout << sum << endl;
	}
	return 0;
}
int main(){
int min,n,i,j,ans,t;
int a[101][101];

    cin>>n;
 for (int k=1;k<=n;k++)
  {  ans=0;
     for (i=0;i<n;i++)
	  for (j=0;j<n;j++)
	    cin>>a[i][j];

     for (t=n;t>1;t--)
	   {  for (i=0;i<t;i++)
           {  min=10000;
	          for (j=0;j<t;j++)
                 if ((a[i][j]<min)) min=a[i][j];
	            for (j=0;j<t;j++)
		           a[i][j]=a[i][j]-min; }
          for (i=0;i<t;i++)
           {  min=10000;
	               for (j=0;j<t;j++)
		               if ((a[j][i]<min)) min=a[j][i];
	                       for (j=0;j<t;j++)
		                      a[j][i]=a[j][i]-min; }
            ans=ans+a[1][1];


         for (i=1;i<t-1;i++)
	      for(j=0;j<t;j++)
	 	   a[i][j]=a[i+1][j];
         for (i=0;i<t-1;i++)
	      for (j=1;j<t-1;j++)
		     a[i][j]=a[i][j+1];

 	  }
       cout<<ans<<endl;
 }
	return 0;
}
int array[110][110],sum;

void dispose(int n);

int main()
{
	int n;
	cin >> n;
	int p=0;
	do
	{
		memset(array,0,sizeof(array));
		sum=0;
		for(int i=0 ; i<n ; i++)
			for(int j=0 ; j<n ; j++)
				cin >> array[i][j];
		dispose(n);
		cout << sum << endl;
		p++;
	}while(p<n);
	return 0;
}

void dispose(int n)
{
	int i,j;
	if(n==1)return ;
	for(i=0;i<n;i++)
	{
		int rowmin=array[i][0];
		for(j=1;j<n;j++)
			if(rowmin>array[i][j])
				rowmin=array[i][j];
		for(j=0;j<n;j++)
			array[i][j]-=rowmin;
	}
	for(i=0;i<n;i++)
	{
		int colmin=array[0][i];
		for(j=1;j<n;j++)
			if(colmin>array[j][i])
				colmin=array[j][i];
		for(j=0;j<n;j++)
			array[j][i]-=colmin;
	}
	sum+=array[1][1];
	for(i=1;i<n-1;i++)
		array[0][i]=array[0][i+1];
	for(i=1;i<n-1;i++)
		array[i][0]=array[i+1][0];
	for(i=1;i<n-1;i++)
		for(j=1;j<n-1;j++)
			array[i][j]=array[i+1][j+1];
	dispose(n-1);
}
int n , i, j , k , t , sum = 0 ,a[200][200] , m;
int main()
{
	cin >> n;
	for (i = 1 ; i <= n ; i++)
	{
		for (j = 0 ; j <= n - 1 ; j++)
		{
			for (k = 0 ; k <= n - 1 ; k++)
			{
				cin >> a[j][k];
			}
		}
        sum = 0;
		for (t = n ; t >= 2 ; t--)
		{
			for (j = 0 ; j <= t - 1  ; j++)
			{
				m = 1000000;
				for (k = 0 ; k <= t - 1 ; k++)
				{
					if (a[j][k] < m)
					{
						m = a[j][k];
					}
				}
				for (k = 0 ; k <= t - 1 ; k++)
				{
					a[j][k] = a[j][k] - m;
				}
			}
			for (j = 0 ; j <= t - 1  ; j++)
			{
				m = 1000000;
				for (k = 0 ; k <= t - 1 ; k++)
				{
					if (a[k][j] < m)
					{
						m = a[k][j];
					}
				}
				for (k = 0 ; k <= t - 1 ; k++)
				{
					a[k][j] = a[k][j] - m;
				}
			}
			sum = sum + a[1][1];
			for (j = 1 ; j <= t - 2 ; j++)
			{
				a[0][j] = a[0][j + 1];
				a[j][0] = a[j + 1][0];
			}
			for (j = 1 ; j <= t - 2 ; j++)
			{
				for (k = 1 ; k <= t - 2 ; k++)
				{
					a[j][k] = a[j + 1][k + 1];
				}
			}
		}
		cout << sum << endl;
	}
	return 0;
}
void main()
{
	int f(int a[100][100],int n);
	int n,a[100][100],i,j,k,s;
	scanf("%d",&n);
	for (i=0;i<n;i++)
	{
		for (j=0;j<n;j++)
			for (k=0;k<n;k++)
				scanf("%d",&a[j][k]);
		s=f(a,n);
    	printf("%d\n",s);
	}

}

int f(int a[100][100],int n)
{
	int i,j,k,min[100],s=0;
	for (i=0;i<n;i++)
	{
		min[i]=a[i][0];
		for (j=0;j<n;j++)
		{
			if (a[i][j]<min[i])
				min[i]=a[i][j];
		}
		for (j=0;j<n;j++)
		{
			a[i][j]-=min[i];
		}
	}
	for (j=0;j<n;j++)
	{
		min[j]=a[0][j];
		for (i=0;i<n;i++)
		{
			if (a[i][j]<min[j])
				min[j]=a[i][j];
		}
		for (i=0;i<n;i++)
		{
			a[i][j]-=min[j];
		}
	}
	if (n==2)
	{
		s=a[1][1];
	}
	else 
	{
		k=a[1][1];
		for (j=1;j<n-1;j++)
			a[0][j]=a[0][j+1];
		for (i=1;i<n-1;i++)
			a[i][0]=a[i+1][0];
		for (i=1;i<n-1;i++)
			for (j=1;j<n-1;j++)
				a[i][j]=a[i+1][j+1];
		s=k+f(a,n-1);
	}
	return s;
}
int main()
{
	int maze[100 + 10][100 + 10] = {0};

	int i, j, k, l;
	int n;
	cin >> n;
	
	
	for(k = 0; k < n; k++)
	{
		int sum = 0;
		for(i = 0; i < n; i++)
			for(j = 0; j < n ;j++)
				cin >> maze[i][j];
		
		
		for(l = n; l >= 2; l--)
		{
			for(i = 0; i < l; i++)
			{
				int min = 1000000;
				for(j = 0; j < l; j++)
					min = min < *(*(maze + i) + j) ? min : *(*(maze + i) + j);
				for(j = 0; j < l; j++)
					*(*(maze + i) + j) -= min;
			}
			
			for(i = 0; i < l; i++)
			{
				int min = 1000000;
				for(j = 0; j < l; j++)
					min = min < *(*(maze + j) + i) ? min : *(*(maze + j) + i);
				for(j = 0; j < l; j++)
					*(*(maze + j) + i) -= min;
			}
			sum += *(*(maze + 1) + 1);
			for(i = 1; i < l - 1; i ++)
			{
				for(j = 0; j < l; j++)
					*(*(maze + i) + j) = *(*(maze + i + 1) + j);
			}
			for(i = 1; i < l - 1; i++)
			{
				for(j = 0; j < l; j++)
					*(*(maze + j) + i) = *(*(maze + j) + i + 1);
			}
		}
		
		cout << sum << endl;
	}
	
	return 0;
}
/*
 * SumMatrixDiag.cpp
 *
 *  Created on: 2013-11-28
 *      Author: 111
 */
int str[101][101];

int main()
{
	int n,sum;
	void oper1(int);
	void oper2(int);
	cin >> n;
	for (int k=0;k<n;k++)
	{
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin >> str[i][j];
		sum = 0;
		for (int i=n;i>1;i--)
		{
			oper1(i);
			sum += str[1][1];
			oper2(i);
		}
		cout << sum << endl;
	}
	return 0;
}

void oper1(int n)
{
	int i,j,min;
    if (n==1) return;
    for (i=0;i<n;i++)
    {
    	min = str[i][0];
        for (j=1;j<n;j++)
        	if (str[i][j]<min)
        		min = str[i][j];
        for (j=0;j<n;j++)
        	str[i][j]-= min;
    }
    for (j=0;j<n;j++)
    {
    	min = str[0][j];
    	for (i=1;i<n;i++)
    		if (str[i][j]<min)
    			min = str[i][j];
    	for (i=0;i<n;i++)
    		str[i][j]-=min;
    }

}
void oper2(int n)
{
	int i,j;
	for (i=1;i<n-1;i++)
	{
		str[0][i] = str[0][i+1];
		str[i][0] = str[i+1][0];
	}
	for (i=1;i<n-1;i++)
		for (j=1;j<n-1;j++)
			str[i][j] = str[i+1][j+1];
}
int main()
{
	int n,m,k,array[100][100];
	cin>>n;
	k=n;m=n;
	while(m>0)
	{
		int i,j,min;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>array[i][j];
	int sum=0;
	while(k>1)
	{
		for(i=0;i<k;i++)
		{
			min=array[i][0];
			for(j=1;j<k;j++)
			{
				if(array[i][j]<min)
					min=array[i][j];
			}
			for(j=0;j<k;j++)
				array[i][j] -= min;
		}
		for(i=0;i<k;i++)
		{
			min=array[0][i];
			for(j=1;j<k;j++)
			{
				if(array[j][i]<min)
					min=array[j][i];
			}
			for(j=0;j<k;j++)
				array[j][i] -= min;
		}
		sum+=array[1][1];
		for(i=0;i<k;i++)
		{
			for(j=1;j<k-1;j++)
			{
				array[i][j]=array[i][j+1];
				
			}
		}
		for(j=0;j<k-1;j++)
		{
			for(i=1;i<k-1;i++)
			{
				array[i][j]=array[i+1][j];
			}
		}
		k--;
	}
	cout<<sum<<endl;
	k=n;
	m--;
	}
	return 0;
}