semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int n, a[100][100] = {0}, i = 0, j = 0, min = 1000;
	int flag = 0, sum = 0, k = 0,l = 0;
	cin >> n;
	for (l = 0; l < n; l++)
	{
		for (i = 0; i < n * n; i++)
			cin >> a[i / n][i % n];
		for (k = 0; k < n - 1 ; k++)
		{
			for (i = 0; i < n - flag; i++)
			{
				min = 1000;
				for (j = 0; j < n - flag; j++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (j = 0; j < n - flag; j++)
					a[i][j] = a[i][j] - min;
			}
			for (j = 0; j < n - flag; j++)
			{
				min = 1000;
				for (i = 0; i < n - flag; i++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (i = 0; i < n - flag; i++)
					a[i][j] = a[i][j] - min;
			}
			sum += a[1][1];
			for (i = 0; i < n - flag; i++)
			{
				for (j = 1; j < n - 1 -flag; j++)
					a[i][j] = a[i][j + 1];
			}
			for (j = 0; j < n - flag; j++)
			{
				for (i = 1; i < n - 1 - flag; i++)
					a[i][j] = a[i + 1][j];
			}
			
			flag++;
		}
		cout << sum << endl;
		sum = 0;
		flag = 0;
	}
	return 0;
}
/*
 * 6.cpp
 *
 *  Created on: 2011-12-31
 *      Author: 2011
 */

int main()
{
    int n,m;
    cin>>n;
    m=n;
    while(m>0)
    {
    	m=m-1;
    	int a[n][n],b[n-1],s=0;
    	int (*p)[n]=NULL,*q=NULL;
    	p=a;
    	q=b;
    	for(int i=0;i<n;i++)
    		for(int j=0;j<n;j++)
    			cin>>*(*(p+i)+j);
    	int imin,jmin;
    	for(int k=0;k<n-1;k++)
    	{
    	for(int i=0;i<n-k;i++)
    	{
    		imin=*(*(p+i)+0);
    		for(int j=1;j<n-k;j++)
    		{
    			if(*(*(p+i)+j)<imin)
    			{
    				imin=*(*(p+i)+j);
    			}
    		}
    		for(int j=0;j<n-k;j++)
    		{
    			*(*(p+i)+j)=*(*(p+i)+j)-imin;
    		}
    	}
    	for(int i=0;i<n-k;i++)
    	{
    		jmin=*(*(p+0)+i);
    		for(int j=1;j<n-k;j++)
    		{
    			if(*(*(p+j)+i)<jmin)
    			{
    				jmin=*(*(p+j)+i);
    			}
    		}
    		for(int j=0;j<n-k;j++)
    		{
    			*(*(p+j)+i)=*(*(p+j)+i)-jmin;
    		}
    	}
    	*(q+k)=*(*(p+1)+1);
    	for(int i=1;i<n-1-k;i++)
    	{
    		for(int j=0;j<n-k;j++)
    		{
    			*(*(p+i)+j)=*(*(p+i+1)+j);
    		}
    	}
    	for(int i=1;i<n-1-k;i++)
    	{
    		for(int j=0;j<n-1-k;j++)
    		{
    			*(*(p+j)+i)=*(*(p+j)+i+1);
    		}
    	}
    	}
    	for(int k=0;k<n-1;k++)
    	{
    		s=s+*(q+k);
    	}
    	cout<<s<<endl;
    }
    return 0;
}
int main()
{
	int n,i,j,k,a[100][100],p,min,sum=0;
	cin>>n;
	for(p=1;p<=n;p++)
	{
		for(i=0;i<=n-1;i++)
		{
			for(j=0;j<=n-1;j++)
			{
				cin>>a[i][j];
			}
		}
		
		for(k=1;k<=n-1;k++)
		{
			
		for(i=0;i<=n-1;i++)
		{
			min=a[i][0];
			for(j=k;j<=n-1;j++)
			{
				if(a[i][j]<min)
				{min=a[i][j];}
			}
			
				for(j=0;j<=n-1;j++)
				{
					a[i][j]=a[i][j]-min;
				}
			
		}

		for(j=0;j<=n-1;j++)
		{
			min=a[0][j];
			for(i=k;i<=n-1;i++)
			{
				if(a[i][j]<min)
				{min=a[i][j];}
			}
			for(i=0;i<=n-1;i++)
			{
				
					a[i][j]=a[i][j]-min;
				
			}
		}
		sum=sum+a[k][k];
		}
		cout<<sum<<endl;
		sum=0;
	}
	
	return 0;
}
int main()
{
	int n,i,j,k,min,max,sum,m;
	int a[110][110]={0};
	cin>>n;
	for(i=0;i<n;i++)
	{
		m=n;
		sum=0;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>*(*(a+j)+k);
		for(m=n;m>1;m--)
		{
			for(j=0;j<m;j++)
			{
				for(k=0;k<m;k++)
				{
					if(!k)
					{
						min=*(*(a+j)+k);
					}
					else if(min>*(*(a+j)+k))
						min=*(*(a+j)+k);
				}
				for(k=0;k<m;k++)
				{
					*(*(a+j)+k)-=min;
				}
			}
			for(j=0;j<m;j++)
			{
				for(k=0;k<m;k++)
				{
					if(!k)
					{
						min=*(*(a+k)+j);
					}
					else if(min>*(*(a+k)+j))
						min=*(*(a+k)+j);
				}
				for(k=0;k<m;k++)
				{
					*(*(a+k)+j)-=min;
				}
			}
			sum+=*(*(a+1)+1);
			for(j=2;j<m;j++)
				*(*a+j-1)=*(*a+j);
			for(j=2;j<m;j++)
				*(*(a+j-1))=*(*(a+j));
			for(j=2;j<m;j++)
				for(k=2;k<m;k++)
					*(*(a+j-1)+k-1)=*(*(a+j)+k);
		}
		cout<<sum<<endl;
	}	
	return 0;
}
/*
 *  ???? ?????????
 *
 *  ??: 2011-11-6
 *  ??????
 */
int main (){
	int a[100][100],n,m,i,j,x,y;
	cin>>n;
	for(m=1;m<=n;m++){
		int s=0,t=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j];
		for(y=n;y>=2;y--){
		for(i=0;i<n-t;i++){
			x=a[i][0];
			for(j=0;j<n-t;j++)
				if(x>a[i][j])x=a[i][j];
			for(j=0;j<n-t;j++)
				a[i][j]-=x;
		}
		for(j=0;j<n-t;j++){
			x=a[0][j];
			for(i=0;i<n-t;i++)
				if(x>a[i][j])x=a[i][j];
			for(i=0;i<n-t;i++)
				a[i][j]-=x;
		}
		s=s+a[1][1];
		for(i=0;i<n-t;i++){
			for(j=1;j<n-t-1;j++)
				a[i][j]=a[i][j+1];
		}
		t++;
		for(j=0;j<n-t;j++)
			for(i=1;i<n-t;i++)
				a[i][j]=a[i+1][j];
		}
		cout<<s<<endl;
	}
	return 0;
}
void Delete(int a[][101], int, int);                //??Delete????????????
int check_min(int a[], int);                        //??check_min?????????????

int sum[101], a[101][101]; //??????sum[101]???????????????, a[101][101]??????????????????

int main()
{
    int n, p;
    int i, j, l, m, k;
    memset(a, 0, sizeof(a));
    memset(sum, 0, sizeof(sum));                   //?a?sum???0
    cin >> n;
    for (k = 0; k < n; k++)
	{
       for (i = 0; i < n; i++)
	   {
           for (j = 0; j < n; j++)
		   {
              cin >> a[i][j];
		   }
	   }
       Delete(a, n, k);                          //??Delete??????
	}

    for (l = 0; l < n; l++)  //???????????
	{
       cout << sum[l] << endl;
	}
    return 0;
}

void Delete(int a[][101], int n, int p)          //n??????????????n * n, p??????????p???
{
    if (n == 1) return;                          //?????????????????
    int i, j, k, l, m, q, r, s, min, Min[101];   //min??????????, Min[101]???????????
    for (i = 0; i < n; i++)
	{
       min = check_min(a[i], n);//?min?????????
       for (j = 0; j < n; j++)
	   {
           a[i][j] = a[i][j] - min;             //???????????
	   }
	}
    for (i = 0; i < n; i++)//????????????Min[i]
	{
       for (j = 0; j < n; j++)
	   {
          if (j == 0) Min[i] = a[j][i];
          if (a[j][i] < Min[i]) Min[i] = a[j][i];
	   } 
	}
    for (i = 0; i < n; i++)
	{
       for (j = 0; j < n; j++)
	   {
           a[j][i] = a[j][i] - Min[i];          //???????????
	   }
	}
    sum[p] = sum[p] + a[1][1];                   //?????sum[p]?????????????a[1][1]
    for (k = 2; k < n; k++)
	{
        for (l = 2; l < n; l++)
		{
           a[k - 1][l - 1] = a[k][l];
		}
	}
    for (m = 2; m < n; m++)
	{
       a[0][m - 1] = a[0][m];
       a[m - 1][0] = a[m][0];
	}
    Delete(a, n - 1, p);                         //?????????
}

int check_min(int a[], int n)
{
   int min;
   int i;
   for (i = 0; i < n; i++)
   { 
     if (i == 0) min = a[i];                  //?min??a[0]
     if (a[i] < min) min = a[i];              //??min??????????
   }
   return min;
}
//============================================================================
// Name        : 8.2.cpp
// Author      : Zhang Yu
// Version     :
// Copyright   : Your copyright notice
// Description : ?????????
//============================================================================

int matrix[101][101][101];
int countsum;//????sum
void cal(int rank,int num)
{
	if (rank!=1)//?????1???????????
	{
		//bool rowZeroExist[rank];//?????????0??
		//memset(rowZeroExist,0,sizeof(rowZeroExist));//??
		//bool columnZeroExist[rank];//?????????0??
		//memset(columnZeroExist,0,sizeof(columnZeroExist));//??
		int rowmin[rank];//???????????
		int columnmin[rank];//???????????
		for (int i=0;i<=rank-1;++i)//??????????i????
		{
			for (int j=0;j<=rank-1;++j)//j????
			{
				if (j==0)//????????????
					rowmin[i]=matrix[num][i][j];//????????????
				else//???????????
					rowmin[i]=min(rowmin[i],matrix[num][i][j]);//?????????????????????????????
			}
			if (rowmin[i]!=0)//??????????????????????????
				for (int j=0;j<=rank-1;++j)
					matrix[num][i][j]=matrix[num][i][j]-rowmin[i];//??????????????????
		}
		for (int i=0;i<=rank-1;++i)//??????????i????
		{
			for (int j=0;j<=rank-1;++j)//j????
			{
				if (j==0)//????????????
					columnmin[i]=matrix[num][j][i];//????????????
				else//???????????
					columnmin[i]=min(columnmin[i],matrix[num][j][i]);//?????????????????????????????
			}
			if (columnmin[i]!=0)//??????????????????????????
				for (int j=0;j<=rank-1;++j)
					matrix[num][j][i]=matrix[num][j][i]-columnmin[i];//???????????????????
		}
		countsum+=matrix[num][1][1];//?a[1][1]???
		for (int i=2;i<=rank-1;++i)
			for (int j=0;j<=rank-1;++j)
				matrix[num][j][i-1]=matrix[num][j][i];//??????????????
		for (int i=2;i<=rank-1;++i)
			for (int j=0;j<=rank-1;++j)
				matrix[num][i-1][j]=matrix[num][i][j];//??????????????
		cal(rank-1,num);
	}
}
int main() {
	int n;
	cin >>n;
	for (int i=0;i<=n-1;++i)
		for (int j=0;j<=n-1;++j)
			for (int k=0;k<=n-1;++k)
				cin >>matrix[i][j][k];//??????
	for (int i=0;i<=n-1;++i)
	{
		countsum=0;//????countsum??
		cal(n,i);//??countsum
		cout <<countsum<<endl;//??countsum
	}
	return 0;
}
int main()
{
    int n;
    cin>>n;
    int a[n][n][n],b[n],min1[n],min2[n],c[n][n-1],sum[n];
    int i,j,k,l,p;          //k????????,i????,j????,l?????? 
    for(i=0;i<n;i++)
    sum[i]=0;
    for(k=0;k<n;k++)
    {
        for(i=0;i<n;i++)          //????n*n?? 
        {
            for(j=0;j<n;j++)
            {
                cin>>a[k][i][j];
            }
        }
        for(l=0;l<n-1;l++)
        {
            for(i=0;i<n-l;i++)           //???????? 
            {
                min1[i]=a[k][i][0];
                for(j=0;j<n-l;j++)        //??????? 
                {
                    if(a[k][i][j]<=min1[i])
                    {
                        min1[i]=a[k][i][j];
                    }
                }
                for(j=0;j<n-l;j++)
                a[k][i][j]=a[k][i][j]-min1[i];  //???????????? 
            }
            for(j=0;j<n-l;j++)          //?? ?????? 
            {
                min2[j]=a[k][0][j];
                for(i=0;i<n-l;i++)     //???????? 
                {
                    if(a[k][i][j]<=min2[j])
                    {
                        min2[j]=a[k][i][j];
                    }
                }
                for(i=0;i<n-l;i++)
                a[k][i][j]=a[k][i][j]-min2[j];  //?????????????? 
            }                   
            c[k][l]=a[k][1][1];    //?????????a[1][1];
            sum[k]=sum[k]+c[k][l];    //????????+c[k][l] 
            for(j=0;j<n;j++)           //????? 
            for(i=1;i<n-1-l;i++)
            {
                a[k][i][j]=a[k][i+1][j];
            }
            for(i=0;i<n-1-l;i++)       //????? 
            for(j=1;j<n-1-l;j++)
            {
                a[k][i][j]=a[k][i][j+1];
            }
        }
    }
    for(i=0;i<n;i++)         //?????????? 
    cout<<sum[i]<<endl;
    return 0;
}
int main()
{
	int n;
	int i,j,k;
	int q;
	int a[110][110];
	int (*p)[110]=a;
	cin>>n;
	q=n;
	for(k=1;k<=q;k++)
	{
		int sum=0;
		n=q;
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				cin>>*(*(p+i)+j);
		while(1)
		{
			if(n==1)break;
		int min=0;
		for(i=1;i<=n;i++)
		{
			min=9999999;
			for(j=1;j<=n;j++)
				if(min>*(*(p+i)+j))min=*(*(p+i)+j);
			for(j=1;j<=n;j++)
				*(*(p+i)+j)-=min;
		}
		for(i=1;i<=n;i++)
		{
			min=9999999;
			for(j=1;j<=n;j++)
				if(min>*(*(p+j)+i))min=*(*(p+j)+i);
			for(j=1;j<=n;j++)
				*(*(p+j)+i)-=min;
		}
		sum+=a[2][2];
		for(i=2;i<=n-1;i++)
			for(j=2;j<=n-1;j++)
				*(*(p+i)+j)=*(*(p+i+1)+j+1);
		for(i=2;i<=n-1;i++)
		{
			*(*(p+1)+i)=*(*(p+1)+i+1);
			*(*(p+i)+1)=*(*(p+i+1)+1);
		}
		n--;
		}
		cout<<sum<<endl;
	}


	return 0;
}
int sub(int num[200][200],int n);//?????
int main()
{
	int i,j,k,n,num[200][200]={0};
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>num[j][k];//????
		cout<<sub(num,n)<<endl;
	}
	return 0;
}
int sub(int num[200][200],int n)
{
	int sum=0,j,i,min=1000;
	for(j=0;j<n;j++)//??????
	{
		min=1000;
		for(i=0;i<n;i++)
		{
			if(num[j][i]<min)
			{
				min=num[j][i];
				if(min==0)
					break;
			}
		}		
		if(min!=0)
		{
			for(i=0;i<n;i++)
				num[j][i]=num[j][i]-min;
		}
	}
	for(j=0;j<n;j++)//??????
	{
		min=1000;
		for(i=0;i<n;i++)
		{
			if(num[i][j]<min)
			{
				min=num[i][j];
				if(min==0)
					break;
			}
		}		
		if(min!=0)
		{
			for(i=0;i<n;i++)
				num[i][j]=num[i][j]-min;
		}
	}
	sum=sum+num[1][1];
	if(n==2)//??????
		return sum;
	else
	{		
		for(i=2;i<n;i++)//???n-1???
		{
			num[0][i-1]=num[0][i];
			num[i-1][0]=num[i][0];
		}
		for(i=2;i<n;i++)
			for(j=2;j<n;j++)
				num[i-1][j-1]=num[i][j];
		sum=sum+sub(num,n-1);//??
		return sum;
	}
}
/*
 * final6.cpp
 *
 *  Created on: 2013-1-12
 *      Author: wangyinzhi
 */
int main(){
	int n,m;
	cin>>n;
	m=n;
	int sum=0;
	for (int i = 0; i < m; i++) {
		n=m;
		int a[100][100];
	    sum=0;
		for (int j = 0; j < n; j++) {
			for(int k=0;k<n;k++){
				cin>>a[j][k];
			}
		}
		while(n>1){
		for (int j = 0; j < n; j++) {
			int min = a[j][0];
			for (int k = 0; k < n; k++) {
				if (a[j][k] < min)
					min = a[j][k];
			}
			for (int k = 0; k < n; k++) {
				a[j][k] = a[j][k] - min;
			}
		}
		for (int j = 0; j < n; j++) {
			int min = a[0][j];
			for (int k = 0; k < n; k++) {
				if (a[k][j] < min)
					min = a[k][j];
			}
			for (int k = 0; k < n; k++) {
				a[k][j] = a[k][j] - min;
			}
		}
		sum=sum+a[1][1];
		
		for(int j=0;j<n;j++){
			for(int k=1;k<n-1;k++){
				a[j][k]=a[j][k+1];
			}
		}
		for(int j=0;j<n;j++){
					for(int k=1;k<n-1;k++){
						a[k][j]=a[k+1][j];
					}
				}

		n=n-1;
	}
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
	int n, i, j, k,a[102][102],min=100000,sum=0, t;
	cin>>n;
	
	for(k=1;k<=n;k++)
	{
		sum=0;

		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				cin>>a[i][j];
			}
		}
		
		
		for(t = 0;t <= n-2; t++)
		{
			
			for(i=1;i<=n-t ;i++)
			{
				min = 100000;
				for(j=1;j<=n-t;j++)
				{
					min = min < a[i][j] ? min : a[i][j]; 
				}
				for(j=1;j<=n-t;j++)
				{
					a[i][j] = a[i][j] -  min;
				}
			}
			
			for(i=1;i<=n-t ;i++)
			{
				min = 100000;
				for(j=1;j<=n-t;j++)
				{
					min = min < a[j][i] ? min : a[j][i]; 
				}
				for(j=1;j<=n-t;j++)
				{
					a[j][i] = a[j][i] -  min;
				}
			}
			
			sum = sum+a[2][2];
			
			for(i=3;i<=n-t;i++)
			{
				a[i-1][1] = a[i][1];
				a[1][i-1] = a[1][i];
			}
			
			for(i=3;i<=n-t;i++)
			{
				for(j=3;j<=n-t;j++)
				{
					a[i-1][j-1] = a[i][j];
				}
			}
			
		}

		cout << sum<<endl;

	}
	return 0;
}
int a[100][100] = {0}, sum = 0;
void guiling(int n)
{
	int i, j, min;
	for (i = 0; i < n; i++)
	{
		min = a[i][0];
		for (j = 0; j < n; j++)
		{
			if (a[i][j] < min)
				min = a[i][j];
		}
		for (j = 0; j < n; j++)
			a[i][j] -= min;
	}
	for (j = 0; j < n; j++)
	{
		min = a[0][j];
		for (i = 0; i < n; i++)
		{
			if (a[i][j] < min)
				min = a[i][j];
		}
		if (min != 0)
		{
			for (i = 0; i < n; i++)
				a[i][j] -= min;
		}
	}
}
void xiaojian(int n)
{
	int i, j;
	sum += a[1][1];
	for (i = 2; i < n; i++)
		a[i - 1][0] = a[i][0];
	for (j = 2; j < n; j++)
		a[0][j - 1] = a[0][j];
	for (i = 2; i < n; i++)
		for (j = 2; j < n; j++)
			a[i - 1][j - 1] = a[i][j];
}

int main()
{
	int i, j, n, k, m;
	cin >> n;
	for (k = 0; k < n; k++)
	{
		m = n;
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			cin >> a[i][j];
	while (m > 2)
	{
		guiling(m);
		xiaojian(m);
		m--;
	}
	guiling(2);
	sum += a[1][1];
	cout << sum << endl;
	sum = 0;
	}
	return 0;
}
int array[100][100];
int (*p)[100]=array;
int sum;
int n;
int times;

void zero()
{
    int xmin=10000,ymin=10000;
    for(int i=0;i<=n-1-times;i++)
    {
        for(int j=0;j<=n-1-times;j++)
        if(*(*(p+i)+j)<xmin)
        {
            xmin=*(*(p+i)+j);
        }
        for(int j=0;j<=n-1-times;j++)
        *(*(p+i)+j)-=xmin;
        xmin=10000;
    }
    for(int j=0;j<=n-1-times;j++)
    {
        for(int i=0;i<=n-1-times;i++)
        if(*(*(p+i)+j)<ymin)
        {
            ymin=*(*(p+i)+j);
        }
        for(int i=0;i<=n-1-times;i++)
        *(*(p+i)+j)-=ymin;
        ymin=10000;
    }

    sum+=(*(*(p+1)+1));
}
void decline()
{
    for(int i=1;i<=n-2;i++)
    for(int j=0;j<=n-1;j++)
    *(*(p+i)+j)=*(*(p+i+1)+j);

    for(int j=1;j<=n-2;j++)
    for(int i=0;i<=n-2;i++)
    *(*(p+i)+j)=*(*(p+i)+j+1);
}

int main()
{
    cin>>n;
    int time=0;
    while(true)
    {
        
    if(time==n)break;
    times=0;
    sum=0;

    for(int i=0;i<=n-1;i++)
    for(int j=0;j<=n-1;j++)
    cin>>*(*(p+i)+j);

    for(int i=1;i<=n-1;i++)
    {
        zero();
        decline();
        times++;
    }

    cout<<sum<<endl;

    time++;
    
    }
    return 0;
}
int n, a[101][101], s;
void cal()
{
    int i, j, k, l, m;
    for (j = 0; j < n; ++ j)
        for (k = 0; k < n; ++ k)
            cin >> a[j][k];
    s = 0;
    for (j = 0; j < n; ++ j)
    {
        for (k = j; k < n; ++ k)//?????????????????
        {
            for (m = l = j; l < n; ++ l)
                if (a[k][l] < a[k][m])
                    m = l;
            m = a[k][m];
            for (l = j; l < n; ++ l)
                a[k][l] -= m;
        }
        for (k = j; k < n; ++ k)//?????????????????
        {
            for (m = l = j; l < n; ++ l)
                if (a[l][k] < a[m][k])
                    m = l;
            m = a[m][k];
            for (l = j; l < n; ++ l)
                a[l][k] -= m;
        }
        s += a[j + 1][j + 1];
        for (k = j + 1; k < n; ++ k)//?????????????
        {
            a[j + 1][k] = a[j][k];
            a[k][j + 1] = a[k][j];
        }
        a[j + 1][j + 1] = a[j][j];
    }
    return;
}
int main()
{
    int i;
    cin >> n;
    for (i = 1; i <= n; ++ i)
    {
        cal();//??s
        cout << s << endl;
    }
}
int main()
{
	int p,n,j,k,min,sum;
	cin >> p;
	int a[100][100];
	n = p;
	for(int i = 0; i < p; i++)
	{
		sum = 0;
		for(j = 0;j < n;j++)
			for (k = 0;k < n;k++)
				cin >> a[j][k];
		do
			{

				for(j = 0; j < n; j++)
				{
					min = a[j][0];
					for (k = 1; k < n; k++)
					{
					if (min > a[j][k])
						min = a[j][k];
					}
				for (k = 0; k < n; k++)
					a[j][k] -= min;
				}
				for(j = 0; j < n; j++)
				{
					min = a[0][j];
					for (k = 1; k < n; k++)
					{
						if (min > a[k][j])
						min = a[k][j];
					}
				for (k = 0; k < n; k++)
					a[k][j] -= min;
				}
			sum += a[1][1];
			for( j = 0; j < n; j++)
				for(k = 1; k< n; k++)
				{
					a[j][k] = a[j][k+1];
				}
			for( j = 1; j < n; j++)
				for(k = 0; k< n; k++)
				{
					a[j][k] = a[j+1][k];
				}
			n--;
			}while(n  > 1);
		cout << sum <<endl;
		n = p;
	}
return 0;
}
int findmin(int *a, int n, int step)
{
	int min = 32767;
	while(n>0)
	{
		if(min>*a) min=*a;
		a+=step;
		n--;
	}
	return min;
}

void main()
{
	int n,k,a[100][100],i,j,l, sum,t;
	scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		sum=0;
		for(i=n;i>=2;i--)
		{
			for(j=0;j<i;j++)
			{	
				t=findmin(a[j],i,1);
				for(l=0;l<i;l++)
					a[j][l]-=t;
			}
			for(j=0;j<i;j++)
			{
				t=findmin(&a[0][j],i,100);
				for(l=0;l<i;l++)
					a[l][j]-=t;
			}

			sum+=a[1][1];
			
			for(j=1;j<i-1;j++)
			{
				for(l=0;l<i;l++)
					a[j][l]=a[j+1][l];
				for(l=0;l<i;l++)
					a[l][j]=a[l][j+1];
			}
		}
		printf("%d\n",sum);
	}
}
void main()
{
	int n;
	int i,j,a[100][100];
	int min,k;
	scanf("%d",&n);
	int tn,sum;
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
		{	for(j=0;j<n;j++)
			{
				scanf("%d",&a[i][j]);
			}
		}
		sum=0;tn=n;
		while(tn>1)
		{
			//guiling
			for(i=0;i<tn;i++)
			{	min=a[i][0];
				for(j=0;j<tn;j++)
				{
					if(min>a[i][j]) min=a[i][j];
				}
				for(j=0;j<tn;j++)
				{
					a[i][j]-=min;
				}
			}
			for(i=0;i<tn;i++)
				{	min=a[0][i];
				for(j=0;j<tn;j++)
				{
					if(min>a[j][i]) min=a[j][i];
				}
				for(j=0;j<tn;j++)
				{
					a[j][i]-=min;
				}
			}
		
		
			//xiaoxu
			sum+=a[1][1];
			for(i=1;i<tn-1;i++)
			{
				for(j=0;j<tn;j++)
					a[i][j]=a[i+1][j];
			}
			for(i=1;i<tn-1;i++)
			{
				for(j=0;j<tn;j++)
					a[j][i]=a[j][i+1];
			}
			tn--;
		}
		printf("%d\n",sum);
	}
}
int f(int a[100][100],int n)
{
    static int s=0;
    int i,j;
    double m1,m2;
    int *p;
    
    if(n==1)
    {printf("%d\n",s);s=0;}
    
    if(n>1)
    {
    for(i=0;i<n;i++)
    {p=a[i];
    m1=100000;
    for(j=0;j<n;j++)
    if(p[j]<=m1) m1=p[j];
    for(j=0;j<n;j++)
    p[j]=p[j]-m1;}
    
    for(j=0;j<n;j++)
    {m2=100000;
    for(i=0;i<n;i++)
    if(a[i][j]<=m2) m2=a[i][j];
    for(i=0;i<n;i++)
    a[i][j]-=m2;}
    
    s+=a[1][1];
    
    for(i=1;i<n-1;i++)
    {for(j=0;j<n;j++)
    a[i][j]=a[i+1][j];}
    for(j=1;j<n-1;j++)
    {for(i=0;i<n-1;i++)
    a[i][j]=a[i][j+1];}
    
    f(a,n-1);
    }
}

main()
{
      int n,i,j,k;
      int a[100][100];
      
      scanf("%d\n",&n);
      for(i=1;i<=n;i++)
      {
      for(j=0;j<n;j++)
      {for(k=0;k<n;k++)
      scanf("%d",&a[j][k]);}
      f(a,n);
      }

}
//********************************
//*????????????   **
//*?????? 1200012988 **
//*???2012.11.19  **
//********************************


int a[100][100];                       //??a?????

int smaller(int a, int b)
{
    if(a >= b)
        return b;
    else
        return a;
}

int Sum(int n)
{
    for (int i = 0; i < n; i++)
    {
        int min = a[i][0];
        for (int j = 1; j < n; j++)
            min = smaller(min, a[i][j]); //????????
        for (int j = 0; j < n; j++)
            a[i][j] -= min;              //?????????????
    }
    for(int j = 0; j < n; j++)
    {
        int min = a[0][j];
        for(int i = 0; i < n; i++)
            min = smaller(min, a[i][j]); //????????
        for(int i = 0; i < n; i++)
            a[i][j] -= min;              //?????????????
            }
    if (n == 2)                          //n?2??????????????????a[1][1]
        return a[1][1];
    int k = a[1][1];
    for (int i = 1; i < n - 1; i++)      //?n??????n-1???
    {
        a[0][i] = a[0][i + 1];
        a[i][0] = a[i + 1][0];
        for (int j = 1; j < n - 1; j++)
            a[i][j] = a[i + 1][j + 1];
    }
    return k + Sum(n - 1);               //?????
}

int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            for (int k = 0; k < n; k++)
                cin >> a[j][k];
        }
        cout << Sum(n) << endl;
    }

    return 0;
}
/*
 * 5.cpp
 *
 *  Created on: 2013-12-13
 *      Author: g199
 */

int main()
{
	int a[100][100];
	int n,i,j,k,s1;
	cin>>n;
	for(i=0;i<n;i++)
		{
		int s=0;
			for(j=0;j<n;j++)
				for(k=0;k<n;k++)
					cin>>a[j][k];
			s1=n;
		while(s1>1)
			{
			for(j=0;j<n;j++)
			{
				int min=a[j][0];
				for(k=1;k<n;k++)
					if(a[j][k]<min)
						min=a[j][k];
				for(k=0;k<n;k++)
					a[j][k]=a[j][k]-min;
			}
			for(k=0;k<n;k++)
			{
				int min1=a[0][k];
				for(j=1;j<n;j++)
					if(a[j][k]<min1)
						min1=a[j][k];
				for(j=0;j<n;j++)
					a[j][k]=a[j][k]-min1;
			}
			s=s+a[1][1];
			s1=s1-1;
			for(j=2;j<n;j++)
				for(k=0;k<n;k++)
					a[j-1][k]=a[j][k];
			for(k=2;k<n;k++)
				for(j=0;j<n;j++)
					a[j][k-1]=a[j][k];
			}
		cout<<s<<endl;
		}

}
/*
    ????n*n????3<=n<=100???????????????n-1???????????????????1*1????????????
    ??????????????????????????????????????????????????????????????????
    ???????????????????0?
    ????????????n*n????????????????????a[][]??????a[1][1]???????????????(n-1)*(n-1)????
    ??????????(n-1)*(n-1)??????????????n-1?????? n*n??????????1*1????
    ????????a[1][1]????


????
????????n?
???n?n*n????
?????n?????n????????????????


????
???n??????????????????????????a[1][1]????

 */