semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
/*
 * 11-8.cpp
 *
 *  Created on: 2011-11-6
 *      Author: b
 */

int main(){
	int n,i,j,k,nn,a[100][100],sum,min;  //??n????min???a???sum
	cin>>n;
	for (k=1;k<=n;k++){    //????
		sum=0;
		for (i=0;i<n;i++)
			for (j=0;j<n;j++) cin>>a[i][j];
		nn=n;
		while (nn>1){
			for (i=0;i<nn;i++){  //?????
				min=a[i][0];
				for (j=0;j<nn;j++) if (a[i][j]<min) min=a[i][j];
				for (j=0;j<nn;j++) a[i][j]=a[i][j]-min;
			}
			for (j=0;j<nn;j++){  //?????
				min=a[0][j];
				for (i=0;i<nn;i++) if (a[i][j]<min) min=a[i][j];
				for (i=0;i<nn;i++) a[i][j]=a[i][j]-min;
			}
			sum=sum+a[1][1];
			for (i=1;i<nn-1;i++) a[i][0]=a[i+1][0];  //?????????
			for (j=1;j<nn-1;j++) a[0][j]=a[0][j+1];
			for (i=1;i<nn-1;i++)
				for (j=1;j<nn-1;j++) a[i][j]=a[i+1][j+1];
			nn=nn-1;  //???????
		}
		if (k==1) cout<<sum;
		else cout<<endl<<sum;
	}
	return 0;
}
void f1(int a[][100],int k)
{
	int i,j,min;
	for(j=0;j<k;j++)
	{
		min=a[j][0];
		for(i=1;i<k;i++) { if(a[j][i]<min) min=a[j][i];}
		for(i=0;i<k;i++) {a[j][i]=a[j][i]-min;}
	}
	for(i=0;i<k;i++)
	{
		min=a[0][i];
		for(j=0;j<k;j++) {if(a[j][i]<min) min=a[j][i];}
		for(j=0;j<k;j++)  {a[j][i]-=min;}
	}
}
void f2(int a[][100],int k)
{
	int i,j;
	for(i=0;i<k;i++)
	{
		for(j=1;j<k-1;j++) a[i][j]=a[i][j+1];
	}
	for(i=0;i<k;i++)
	{
		for(j=1;j<k-1;j++) a[j][i]=a[j+1][i];
	}
}
main()
{
	int n,z,k;
	scanf("%d",&n);k=n;
	for(z=0;z<n;z++)
	{
		int i,j,sum=0;
		int a[100][100];
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)  scanf("%d",&a[i][j]);
		}
		k=n;
		for(k;k>1;k--)
		{
			f1(a,k);
			sum+=a[1][1];
			f2(a,k);
		}
		printf("%d\n",sum);
	}
	return 0;
}
int main()
{
	int n, i, j, min;
	int a[103][103];
	cin >> n;
	for (int count = 1; count <= n; count++)
	{
		for (i = 0; i < n; i++)
		{
			for (j = 0; j < n; j++)
			{
				cin >> a[i][j];
			}
		}
		int n0 = n, sum = 0;
		while (n0 >= 2)
		{
			for (i = 0; i < n0; i++)
			{
				min = a[i][0];
				for (j = 1; j < n0; j++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (j = 0; j < n0; j++)
				{
					a[i][j] -= min;
				}
			}
			for (j = 0; j < n0; j++)
			{
				min = a[0][j];
				for (i = 1; i < n0; i++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (i = 0; i < n0; i++)
				{
					a[i][j] -= min;
				}
			}
			sum += a[1][1];
			for (i = 1; i < n0; i++)
				for (j = 0; j < n0; j++)
					a[i][j] = a[i+1][j];
			for (j = 1; j < n0; j++)
				for (i = 0; i < n0; i++)
					a[i][j] = a[i][j+1];
			n0--;
		}
		cout << sum << endl;
	}
	return 0;
}
/*
 *?????????????.cpp
 *?????
 *????: 2012-11-25
 *??????????????????a[1][1]???
 */


int a[100][100];	//????a[100][100]?????
int n, sum = 0;		//????n??sum
int Sum(int);		//????Sum(n),???
void RowSub(int);	//????RowSub(int)?????
void ColSub(int);	//????ColSub(int)?????

int Sum(int n)
{
	RowSub(n);		//?????????
	ColSub(n);		//?????????
	if (n == 2)		//????
	{
		return a[1][1];
	}
	int k = a[1][1];	//?k??
	//????
	for (int i = 1; i < n - 1; i++)
	{
		a[i][0] = a[i + 1][0];
		a[0][i] = a[0][i + 1];
		for (int j = 1; j < n - 1; j++)
		{
			a[i][j] = a[i + 1][j + 1];
		}
	}
	return k + Sum(n - 1);		//???
}

void RowSub(int n)
{
	for (int i = 0; i < n; i++)
	{
		int min = a[i][0];
		//?????????
		for (int j = 0; j < n; j++)
		{
			if (a[i][j] < min)
			{
				min = a[i][j];
			}
		}
		//?????
		for (int j = 0; j < n; j++)
		{
			a[i][j] = a[i][j] - min;
		}
	}
	return;
}

void ColSub(int n)
{
	for (int i = 0; i < n; i++)
	{
		int min = a[0][i];
		//?????????
		for (int j = 0; j < n; j++)
		{
			if (a[j][i] < min)
			{
				min = a[j][i];
			}
		}
		//?????
		for (int j = 0; j < n; j++)
		{
			a[j][i] = a[j][i] - min;
		}
	}
	return;
}
int main (){
	int i, j, k;	//??????i,j,k

	cin >> n;		//????
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			for (k = 0; k < n; k++)
			{
				cin >> a[j][k];			//????
			}
		}
		cout << Sum(n) << endl;			//???
	}
	return 0;
}
int main()
{
	int N;scanf("%d",&N);
	for(int n=0;n<N;n++)
	{
	int Ma[N][N];
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		scanf("%d",&Ma[i][j]);
	}
	int SUM=0;
	for(int Now=1;Now<N;Now++)
	{
		int MINR=Ma[0][0]; 
		for(int j=Now;j<N;j++)if(MINR>Ma[0][j]) MINR=Ma[0][j];
		Ma[0][0]-=MINR;
		for(int j=Now;j<N;j++)Ma[0][j]-=MINR;
		for(int i=Now;i<N;i++)
		{
			int MIR=Ma[i][0];
			for(int j=Now;j<N;j++)if(MIR>Ma[i][j]) MIR=Ma[i][j];
			Ma[i][0]-=MIR;
			for(int j=Now;j<N;j++)Ma[i][j]-=MIR;
		}
		int MINC=Ma[0][0]; 
		for(int j=Now;j<N;j++)if(MINC>Ma[j][0]) MINC=Ma[j][0];
		Ma[0][0]-=MINC;
		for(int j=Now;j<N;j++)Ma[j][0]-=MINC;
		for(int i=Now;i<N;i++)
		{
			int Mic=Ma[0][i];
			for(int j=Now;j<N;j++)if(Mic>Ma[j][i]) Mic=Ma[j][i];
			Ma[0][i]-=Mic;
			for(int j=Now;j<N;j++)Ma[j][i]-=Mic;
		}
		SUM+=Ma[Now][Now];
	}
	printf("%d\n",SUM);
	}
}
int main()
{
    int n,i,j,k,l,min=0,num;
    int s[100][100];
    cin>>n;
    for(l=1;l<=n;l++)
    {
        num=0;
        memset(s,0,sizeof(s));
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                cin>>*(*(s+i)+j);
        for(k=0;k<=n-2;k++)
        {
            for (i=1;i<=n-k;i++)
            {
                min=s[i][1];
                for(j=1;j<=n-k;j++)
                {
                    if(*(*(s+i)+j)<min) min=*(*(s+i)+j);
                }
                for(j=1;j<=n-k;j++)
                {
                    *(*(s+i)+j)-=min;
                }
            }
            for (j=1;j<=n-k;j++)
            {
                min=s[1][j];
                for(i=1;i<=n-k;i++)
                {
                    if(*(*(s+i)+j)<min) min=*(*(s+i)+j);
                }
                for(i=1;i<=n-k;i++)
                {
                    *(*(s+i)+j)-=min;
                }
            }
            num+=s[2][2];
            for (i=1;i<=n-k;i++)
                for (j=2;j<=n-k-1;j++)
                    *(*(s+i)+j)=*(*(s+i)+j+1);
            for (j=1;j<=n-k;j++)
                for (i=2;i<=n-k-1;i++)
                    *(*(s+i)+j)=*(*(s+i+1)+j);
        }
        cout << num << endl;
    }
    return 0;
}
int sum=0;

int min(int a[],int n)         //???????????
{
	int m=a[0];
	for(int i=0;i<n;i++)
		if(a[i]<m)
			m=a[i];
	return m;
}

int juzhen(int a[100][100],int n)
{
	int hangmin[100],liemin[100];  //?????????????????
	for(int i=0;i<n;i++)
	{
		hangmin[i]=min(a[i],n);  //?????????
	}
	for(int i=0;i<n;i++)           
	{
		for(int j=0;j<n;j++)
			a[i][j]=a[i][j]-hangmin[i];      //?????????????????????
	}
	int templie[100];         //??????????????
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			templie[j]=a[j][i];
		}
		liemin[i]=min(templie,n);            //?????????
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
			a[j][i]=a[j][i]-liemin[i];       //???????????????????????
	}
	sum=sum+a[1][1];                         //??sum
	for(int i=1;i<n;i++)                    //???????
		for(int j=0;j<n;j++)
		{
			a[i][j]=a[i+1][j];
		}
	for(int j=1;j<n;j++)
		for(int i=0;i<n;i++)
		{
			a[i][j]=a[i][j+1];
		}
	n=n-1;                 //?n??1
	if(n==1)                  //??????????????1???
	{
		cout<<sum<<endl;      //????sum?????sum
		sum=0;
	}
	else juzhen(a,n);      //???????
	return 0;
}

int main()
{
	int n;
	cin>>n;
	int a[100][100];
	for(int k=1;k<=n;k++)        //?k???????
	{
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			cin>>a[i][j];
	juzhen(a,n);
	}
	return 0;
}
int main()
{
 int n ,sum;
 int i , j , k ;
 int a[101][101] ={0};
 int lenth , min ;
 
 scanf("%d",&n);
	for(i =1 ; i <= n ; i ++)
	{   
		sum = 0;
		lenth = n;
		
		for(j = 1 ; j <= n ; j ++)
			for( k = 1 ; k <= n ; k ++)
				scanf("%d",&a[j][k]);

		for(lenth = n ; lenth > 1 ; lenth --)
		{
			for( j = 1 ;j <= lenth ; j++)
			{
				min = 1000;
				for(k = 1 ; k <= lenth ; k ++)
				{   
					if(a[j][k] < min )
						min = a[j][k];
				}
			    for( k = 1; k <= lenth ; k++)
					if( a[j][k] != 0)
						a[j][k] = a[j][k] - min ; 
			}
			for( j = 1 ;j <= lenth ; j++)
			{
				min = 1000;
				for(k = 1 ; k <= lenth ; k ++)
				{   
					if(a[k][j] < min )
						min = a[k][j];
				}
			    for( k = 1; k <= lenth ; k++)
					if( a[k][j] != 0)
						a[k][j] = a[k][j] - min ; 
			}
			sum = sum + a[2][2];
		    
			for( j = 1; j <= lenth ; j ++)
				for(k =2; k <= lenth ; k++)
					a[j][k] = a[j][k+1];
			for( j = 2; j <= lenth ; j ++)
				for(k =1; k <= lenth ; k++)
					a[j][k] = a[j + 1][k];
		}
		printf("%d\n",sum);
	}
	 
	
 return 0;
}
int main()
{
    int n,a[100][100],ni,minl[100],minh[100],i,j,k,q,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];
            }
        }
        for(ni=n;ni>1;ni--)
        {
             for(i=0;i<ni;i++)//??????
            {
                minl[i]=a[i][0];
                   for(j=0;j<ni;j++)
               {
                    if(minl[i]>a[i][j]) minl[i]=a[i][j];
               }
                    for(j=0;j<ni;j++)
               {
                    a[i][j]=a[i][j]-minl[i];
               }
            }
            for(j=0;j<ni;j++)
            {
                minh[j]=a[0][j];
                for(i=0;i<ni;i++)
                {
                    if(minh[j]>a[i][j]) minh[j]=a[i][j];
                }
                for(i=0;i<ni;i++)
                {
                    a[i][j]=a[i][j]-minh[j];
                }
            }
            sum+=a[1][1];

            for(i=0;i<ni;i++)
            {
                for(j=1;j<ni-1;j++)
                {
                    a[i][j]=a[i][j+1];
                }
            }

            for(j=0;j<ni;j++)
            {
                for(i=1;i<ni-1;i++)
                {
                    a[i][j]=a[i+1][j];
                }
            }




        }
        cout<<sum<<endl;

    }
















    return 0;
}
int hang(int a[],int n,int h)
{
	int m=a[0];
	for(int i=h;i<n;i++)
		if(a[i]<m)m=a[i];
	return(m);}
int lie(int a[][110],int n,int j,int h)
{
	int m=a[0][j];
	for(int i=h;i<n;i++)
		if(a[i][j]<m)m=a[i][j];
	return(m);
}
int main()
{
	int n,k;
	scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		int i,j,h,s=0,hm,lm,a[110][110]={0};
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		for(h=1;h<n;h++)
			{hm=hang(a[0],n,h);a[0][0]-=hm;
			for(j=h;j<n;j++)a[0][j]-=hm;
			for(i=h;i<n;i++)
			{hm=hang(a[i],n,h);a[i][0]-=hm;
			for(j=h;j<n;j++)a[i][j]-=hm;}
			lm=lie(a,n,0,h);a[0][0]-=lm;
			for(i=h;i<n;i++)a[i][0]-=lm;
			for(j=h;j<n;j++)
			{lm=lie(a,n,j,h);a[0][j]-=lm;
			for(i=h;i<n;i++)a[i][j]-=lm;}
			s+=a[h][h];}
		printf("%d\n",s);}
}
int main()
{
	int n, range;
	cin >> range;
	n = range;
	int a[102][102], (*p)[102] = a;
	int i, j, k, q, sum = 0;
	for (i = 0; i < range; i++)
	{
		sum = 0;
		n = range;
		int minrow = 999999, mincol = 999999;
		for (j = 0; j < n; j++) // cin juzhen
			for (k = 0; k < n; k++)
				cin >> *(*(p + j) + k);
		for (; n > 1;)
		{
		
		for (j = 0; j < n; j++)
		{
			for (k = 0; k < n; k++)
				if (*(*(p + j) + k) < minrow)
					minrow = *(*(p + j) + k);
			for (k = 0; k < n; k++)
				*(*(p + j) + k) = *(*(p + j) + k) - minrow;
			minrow = 999999;
		}//end of finding row min
		/*for (j = 0; j < n; j++) 
			for (k = 0; k < n; k++)
				cout <<  *(*(p + j) + k) << " ";
			cout << endl;*/
		for (k = 0; k < n; k++)
		{
			for (j = 0; j < n; j++)
				if (*(*(p + j) + k) < mincol)
					mincol = *(*(p + j) + k);
			for (j = 0; j < n; j++)
				*(*(p + j) + k) = *(*(p + j) + k) - mincol;
			mincol = 999999;
		}//end of finding col min
		/*for (j = 0; j < n; j++) 
			for (k = 0; k < n; k++)
				cout <<  *(*(p + j) + k) << " ";
			cout << endl;*/
		sum += *(*(p + 1) + 1); 
		//cout << sum << endl;
		if (n == 2)
			break;
		for (j = 1; j <= n - 2; j++)
		{
			for (k = 0; k < n; k++)
				*(*(p + j) + k) = *(*(p + j + 1) + k);
		}
		for (j = 1; j <= n - 2; j++)
		{
			for (k = 0; k < n; k++)
				*(*(p + k) + j) = *(*(p + k) + j + 1);
		}
		n--;
		/*for (j = 0; j < n; j++) 
			for (k = 0; k < n; k++)
				cout <<  *(*(p + j) + k) << " ";
			cout << endl;*/
		//for (j = 0; j < n; j++) 
		//	for (k = 0; k < n; k++)
		//		cout <<  *(*(p + j) + k) << endl;
		} // end of n--
		//sum += *(*(p + 1) + 1);
		cout << sum << endl;

	} // end for n ci
	return 0;
}
int main()
{
	int n, a[100][100], i, j, t, k, tem, min, sum;
	cin >> n;
	for(t = 0; t < n; t++)
	{
		sum = 0;
		for(i = 0; i < n; i++)
		{
			for(j = 0; j < n ; j++)
			{
				cin >> a[i][j];
			}
		}
		tem = n;
		for(k = 0; k < n - 1; k++)
		{
			for(i = 0; i < tem; i++)
			{
				min = a[i][0];
				for(j = 1; j < tem; j++)
				{
					if(min > a[i][j])
						min = a[i][j];
				}
				for(j = 0; j < tem; j++)
				{
					a[i][j] = a[i][j] - min;
				}
			}
			for(j = 0; j < tem; j++)
			{
				min = a[0][j];
				for(i = 1; i < tem; i++)
				{
					if(min > a[i][j])
						min = a[i][j];
				}
				for(i = 0; i < tem; i++)
				{
					a[i][j] = a[i][j] - min;
				}
			}
			sum = sum + a[1][1];
			for(i = 2; i < tem; i++)
			{
				for(j = 0; j < tem; j++)
				{
					a[i - 1][j] = a[i][j];
				}
			}
			for(j = 2; j < tem; j++)
			{
				for(i = 0; i < tem; i++)
				{
					a[i][j - 1] = a[i][j];
				}
			}
			tem--;
		}
		cout << sum << endl;
	}
	return 0;
}
//1????'\0'
//2???????
//3??????
//4?cin.get();
//5?double??
//6?
int main()
{
	int n=0;
	cin>>n;
	int q=0;
	while(q<n)
	{
		int a[110][110]={0},(*p)[110]=a;
		int o=n,sum=0;
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				cin>>*(*(p+i)+j);
			}
		}
		while(o>0)
		{
			int min[110][2]={0},(*q)[2]=min;
			memset(min,10000,sizeof(min));
			for(int i=0;i<o;i++)
			{
				for(int j=0;j<o;j++)
				{
					if(*(*(p+i)+j)<*(*(q+i)))
						*(*(q+i))=*(*(p+i)+j);
				}
			}
			for(int i=0;i<o;i++)
			{
				for(int j=0;j<o;j++)
				{
					*(*(p+i)+j)-=*(*(q+i));
				}
			}
			for(int j=0;j<o;j++)
			{
				for(int i=0;i<o;i++)
				{
					if(*(*(p+i)+j)<*(*(q+j)+1))
						*(*(q+j)+1)=*(*(p+i)+j);
				}
			}
			for(int j=0;j<o;j++)
			{
				for(int i=0;i<o;i++)
				{
					*(*(p+i)+j)-=*(*(q+j)+1);
				}
			}
			sum+=*(*(p+1)+1);
			for(int i=0;i<o;i++)
			{
				for(int j=1;j<o;j++)
				{
					*(*(p+i)+j)=*(*(p+i)+j+1);
				}
			}
			for(int i=1;i<o;i++)
			{
				for(int j=0;j<o;j++)
				{
					*(*(p+i)+j)=*(*(p+i+1)+j);
				}
			}
			o--;
		}
		cout<<sum<<endl;
		q++;
	}
	return 0;
}
int main()
{
	int n,x,k;
	scanf("%d",&n);
	
	for (x=1;x<=n;x++)
	{
		int j,i,a[MAX][MAX],*p,sum=0;
		p=&a[0][0];
		for (i=0;i<n;i++)
		{
			for (j=0;j<n;j++)
				scanf("%d",p+101*i+j);           //????
		}
		for (k=n;k>=2;k--)                         //??????????
		{
			for (i=0;i<k;i++)
			{
				int min=*(*(a+i));                    //????????????
				for (j=0;j<k;j++)
					if (*(*(a+i)+j)<min)
						min=*(*(a+i)+j);                  //????
				for (j=0;j<k;j++)
					*(*(a+i)+j)=*(*(a+i)+j)-min;         //????????
			}
			for (j=0;j<k;j++)
			{
				int min=*(*a+j);                 //????????????
				for (i=0;i<k;i++)
					if (*(*(a+i)+j)<min)
						min=*(*(a+i)+j);                  //????
				for (i=0;i<k;i++)
					*(*(a+i)+j)=*(*(a+i)+j)-min;         //????????
			}
			sum=sum+*(*(a+1)+1);                         //?????
			for (i=1;i<k-1;i++)
			{
				for (j=0;j<k;j++)
					*(*(a+i)+j)=*(*(a+i+1)+j);         //????????1????????????
			}
			for (j=1;j<k-1;j++)
			{
				for (i=0;i<k;i++)
					*(*(a+i)+j)=*(*(a+i)+j+1);         //????????1????????????
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}
int main()
 {int n,m,i=0;
 cin>>n;
 for(i=1;i<=n;i++)
  { int a[100][100],j,k,l,sum=0;
    for(k=0;k<=n-1;k++)
     for(l=0;l<=n-1;l++)
      cin>>a[k][l];
   for(j=1;j<=n-1;j++)
    {
     for(k=0;k<=n-j;k++)
     { int min=a[k][0];
       for(l=1;l<=n-j;l++)
        if(a[k][l]<min)
           min=a[k][l];
       for(l=0;l<=n-j;l++)
          a[k][l]=a[k][l]-min;
     }
    for(k=0;k<=n-j;k++)
     { int min=a[0][k];
        for(l=1;l<=n-j;l++)
         if(a[l][k]<min)
           min=a[l][k];
        for(l=0;l<=n-j;l++)
         a[l][k]=a[l][k]-min;
     }
    sum=sum+a[1][1];
    for(k=2;k<=n-j;k++)
     { a[0][k-1]=a[0][k];
       a[k-1][0]=a[k][0];
     }
   for(k=2;k<=n-j;k++)
    for(l=2;l<=n-j;l++)
     a[k-1][l-1]=a[k][l];
     }
   cout<<sum<<endl;
    }
return 0;
}
int main(){
	int n;
	cin>>n;
	int i=0;
	while(i<n){
		int a[n][n];
		int b[n],c[n];
		int t=1;
		int j,k;
		int sum=0;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++){
				cin>>a[j][k];
			}
		while(t<n){
			for(j=0;j<n;j++){
						if(a[j][0]<0)j++;
						b[j]=a[j][0];
						for(k=0;k<n;k++){
							if(b[j]>a[j][k]&&a[j][k]>=0)
								b[j]=a[j][k];
						}
					}
			for(j=0;j<n;j++){
				for(k=0;k<n;k++){
					if(a[j][k]>=0){
					a[j][k]=a[j][k]-b[j];}
				}
			}
			for(j=0;j<n;j++){
				if(a[0][j]<0)j++;
				c[j]=a[0][j];
				for(k=0;k<n;k++){
					if(c[j]>a[k][j]&&a[k][j]>=0)
						c[j]=a[k][j];
				}
			}
			for(j=0;j<n;j++){
				for(k=0;k<n;k++)
					if(a[k][j]>=0){
					a[k][j]=a[k][j]-c[j];}
			}
			sum=sum+a[t][t];
			for(j=0;j<n;j++){
				a[t][j]=-1;
				a[j][t]=-1;
			}
			t++;
		}
			i++;
			cout<<sum<<endl;
			sum=0;
	}
	return 0;
}
//??????
void change(int a[][100], int n, int sum)
{
	int i, j, min1, min2;
	if(n == 1)
	{
		cout << sum << endl;
		return ;
	}
	else 
	{
		
		for(i = 0; i < n; i++)
		{
			min1 = 10000;
			for(j = 0; j < n; j++)
			{
				if(min1 > a[i][j])
					min1 = a[i][j];
			}
			for(j = 0; j < n; j++)
				a[i][j] -= min1;
		}
		
		for(i = 0; i < n; i++)
		{
			min2 = 10000;
			for(j = 0; j < n; j++)
			{
				if(min2 > a[j][i])
					min2 = a[j][i];
			}
			for(j = 0; j < n; j++)
				a[j][i] -= min2;
		}
		sum += a[1][1];
		for(i = 1; i < n - 1; i++)
			for(j = 0; j < n; j++)
				a[i][j] = a[i + 1][j];
		for(i = 1; i < n - 1; i++)
			for(j = 0; j < n; j++)
				a[j][i] = a[j][i + 1];
			change( a,  n - 1,  sum);
	}
}
int main ()
{
	int n, a[100][100], i, j, k, sum;	
	cin >> n;
	for(i = 0; i < n; i++)
	{
		sum = 0;
		for(j = 0; j < n; j++)
			for(k = 0; k < n; k++)
		cin >> a[j][k];
			change(a, n, sum);
	}
	return 0;
}
int main()
{
	int n,count=0;
	cin >>n;
	while (count<n)
	{
		int input[100][100],sum=0;
		int (*p)[100];
		p=input;
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin >>*(*(p+i)+j);

		for (int i=0;i<n-1;i++)
		{
			for (int j=0;j<n-i;j++)
			{
				int min=100000;
				for (int k=0;k<n-i;k++)
					if (*(*(p+j)+k)<min) min=*(*(p+j)+k);
				for (int k=0;k<n-i;k++)
					*(*(p+j)+k)-=min;
			}
			for (int j=0;j<n-i;j++)
			{
				int min=100000;
				for (int k=0;k<n-i;k++)
					if (*(*(p+k)+j)<min) min=*(*(p+k)+j);
				for (int k=0;k<n-i;k++)
					*(*(p+k)+j)-=min;
			}
            sum+=*(*(p+1)+1);
			for (int j=0;j<n-i;j++)
				for (int k=1;k<n-i-1;k++)
					*(*(p+j)+k)=*(*(p+j)+k+1);
			for (int j=0;j<n-i;j++)
				for (int k=1;k<n-i-1;k++)
					*(*(p+k)+j)=*(*(p+k+1)+j);
		}
		cout <<sum <<endl;
		count++;
	}
	
	return 0;
}
/*
 * juzhenxiaojian.cpp
 *
 *  Created on: 2011-11-11
 *      Author: Dai Guangda
 */
int main()
{
	int a[101][101],i,k,n,sum;
	cin >>n;
	void putin(int a[][101], int n);      //???????????
	void xiaojian(int a[][101], int n);   //??????n???????
	void guiling(int a[][101], int n);    //??????n???????
	for (i=1; i<=n; i++)
	{
		putin(a,n);    //???i?n???
		sum = 0;
		for (k=n; k>=2; k--)   //??????????????????????
		{
			guiling(a,k);
			sum += a[2][2];        //????a[2][2]
			xiaojian(a,k);
		}
		cout <<sum <<endl;
	}
	return 0;
}
void putin(int a[101][101],int n)
{
	int i,j;
	for (i=1; i<=n; i++)
		for (j=1; j<=n; j++)
			cin >>a[i][j];
}
void guiling(int a[101][101], int n)
{
	int i,j,min[101];
	for (i=1; i<=n; i++)
	{
		min[i] = a[i][1];
		for (j=2; j<=n; j++)           //??????????
			if (a[i][j] < min[i]) min[i] = a[i][j];
		for (j=1; j<=n; j++)
			a[i][j] -= min[i];
	}
	for (j=1; j<=n; j++)
	{
		min[j] = a[1][j];
		for (i=2; i<=n; i++)
			if (a[i][j] < min[j]) min[j] = a[i][j];
		for (i=1; i<=n; i++)
			a[i][j] -= min[j];
	}
}

void xiaojian(int a[][101], int n)
{
	int i,j;
	for (i=2; i<=n-1; i++)
		for (j=1; j<=n; j++)       //?????
			a[i][j] = a[i+1][j];
	for (j=2; j<=n-1; j++)
		for (i=1; i<=n-1; i++)      //?????
			a[i][j] = a[i][j+1];
}
int i,j,t;
int n;
int sum;	int a[100][100];
int f(int x)
{for(int ii=0;ii<x;ii++)
{int minn=a[ii][0];
for(int ij=0;ij<x;ij++)
	if(a[ii][ij]<minn)
		minn=a[ii][ij];
for(int ij=0;ij<x;ij++)
	a[ii][ij]=a[ii][ij]-minn;
}
}
int g(int x)
{for(int ii=0;ii<x;ii++)
{int minn=a[0][ii];
for(int ij=0;ij<x;ij++)
	if(a[ij][ii]<minn)
		minn=a[ij][ii];
for(int ij=0;ij<x;ij++)
	a[ij][ii]=a[ij][ii]-minn;
}
}
int h(int x)
{
	sum=sum+a[1][1];
	for(int ii=0;ii<x;ii++)
	{for(int jj=1;jj<x;jj++)
		a[ii][jj]=a[ii][jj+1];
	}
	for(int ii=0;ii<x;ii++)
	{for(int jj=1;jj<x;jj++)
		a[jj][ii]=a[jj+1][ii];
	}
}
int main()
{

	cin>>n;
	for(int qqq=0;qqq<n;qqq++)
	{sum=0;
		for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{
			cin>>a[i][j];
		}
		for(i=n;i>1;i--)
		{
			f(i);g(i);h(i);
		}
		cout<<sum<<endl;
	}
}
//============================================================================
// Name        : 2.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================


void putout(int a[N][200],int num)
{
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<num;j++)
			cout<<setw(3)<<a[i][j];
		cout<<endl;
	}
}

void cut1 (int a[N][N],int b,int num)//&#182;&#212;&#195;&#191;ò&#187;DD&#189;&#248;DD1éá&#227;
{
	int a1[N][N];
	memcpy(a1,a,N*N*sizeof(int));
	for(int i=num-2;i>=0;i--)
		a1[b][i]=min(a1[b][i],a1[b][i+1]);
	for(int i=0;i<num;i++)
		a[b][i]-=a1[b][0];
}

void cut2 (int a[N][N],int b,int num)//&#182;&#212;&#195;&#191;ò&#187;áD&#189;&#248;DD1éá&#227;
{
	int a1[N][N];
	memcpy(a1,a,N*N*sizeof(int));
	for(int i=num-2;i>=0;i--)
		a1[i][b]=min(a1[i][b],a1[i+1][b]);
	for(int i=0;i<num;i++)
		a[i][b]-=a1[0][b];
}

int remain(int a[N][N],int num,int out)//&#182;&#212;&#195;&#191;ò&#187;&#184;&#246;&#190;&#216;&#213;ó&#189;&#248;DD1éá&#227;oí&#207;&#251;&#188;&#245;?&#196;2ù×÷?&#172;2?&#188;&#198;&#203;&#227;out
{
	for(int i=0;i<num;i++)//&#182;&#212;&#195;&#191;ò&#187;DD1éá&#227;
		cut1(a,i,num);
	for(int i=0;i<num;i++)//&#182;&#212;&#195;&#191;ò&#187;áD1éá&#227;
		cut2(a,i,num);
	out=out+a[1][1];//à&#219;&#188;óa[1][1]
	for(int i=1;i<num-1;i++)//&#207;&#251;&#188;&#245;?ú&#182;tDD
		for(int j=0;j<num;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<num-1;i++)//&#207;&#251;&#188;&#245;?ú&#182;táD
		for(int j=0;j<num-1;j++)
			a[j][i]=a[j][i+1];
	num--;//&#190;&#216;&#213;óéùò&#187;&#189;×
	if(num==1)
		return out;
	else
		return remain(a,num,out);
}

int main() {
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a[N][N];//&#214;&#216;&#214;&#195;a[200][200]
		memset(a,0,N*N*sizeof(int));
		for(int i=0;i<n;i++)//ê&#228;è&#235;&#190;&#216;&#213;ó
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		int p=remain(a,n,0);//&#188;&#198;&#203;&#227;a[1][1]?&#196;oí
		cout<<p<<endl;
	}
	return 0;
}
//
//  main.cpp
//  ?????????
//
//  Created by ?? on 12-11-20.
//  Copyright (c) 2012? ??. All rights reserved.
//

int a[100][100];
void guiling(int n)
{
    for (int i = 0; i < n; i++)
    {
        int min = a[i][0];
        for (int j = 1; j < n; j++) if (a[i][j] < min)
            min = a[i][j];
        for (int j = 0; j < n; j++) a[i][j] -= min;
    }
    for ( int i = 0; i < n; i++)
    {
        int min = a[0][i];
        for (int j = 1; j < n; j++)
            if (a[j][i] < min) min = a[j][i];
        for (int j = 0; j < n; j++) a[j][i] -= min;
    }
}
void xiaojian(int n)
{
    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];
    }
}
int Sum(int n)
{
    if (n == 1)
        return 0;
    int k = 0;
    guiling(n);
    k += a[1][1];
    xiaojian(n);
    n--;
    return k + Sum(n); // ???????
}
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;
}