semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void hang(int a[100][100],int n)
{
	int i,j;
	for(i=2;i<=n-1;i++)
	{
		for(j=1;j<=n;j++)
		{
			a[j][i]=a[j][i+1];
		}
	}
}
void lie (int a[100][100],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];
		}
	}
}
void xiaohang(int a[100][100],int n)
{
	int i,j;
	for(i=1;i<=n;i++)
	{
		int min=100000000;
		for(j=1;j<=n;j++)
		{
			if(min>a[i][j])
			{
				min=a[i][j];
			}
		}
		for(j=1;j<=n;j++)
		{
			a[i][j]-=min;
		}
	}
}
void xiaolie(int a[100][100],int n)
{
	int i,j;
	for(i=1;i<=n;i++)
	{
		int min=100000000;
		for(j=1;j<=n;j++)
		{
			if(min>a[j][i])
			{
				min=a[j][i];
			}
		}
		for(j=1;j<=n;j++)
		{
			a[j][i]-=min;
		}
	}
}
int main()
{ 
	int n;
	cin>>n;
	int a[100][100]={{0}};
	int i,j;
	int p;
	for(p=1;p<=n;p++)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				cin>>a[i][j];
			}
		}
		int o,sum=0,m=n;
		for(o=1;o<=n-1;o++)
		{
			xiaohang(a,m);
			xiaolie(a,m);
			sum+=a[2][2];
			hang(a,m);
			lie(a,m);
			m--;
		}
		cout<<sum<<endl;
	}
	return 0;
}
//**********************************
//****       ??????     *****
//****        1200016612       *****
//**  ????????????  ****
//**********************************
int main()                                            //?????
{
	int n=0,i=0,j=0,k=0,s=0;
	int b[100],a[100][100];                           //??a[100][100]???n???????b[100]??????????a[1][1]???
	cin>>n;
	for(i=0;i<n;i++)                                  //??n?n???
	{
			for(j=0;j<n;j++){                         //??n???
				for(k=0;k<n;k++){
					cin>>a[j][k];
				}
			}
        for(s=n;s>1;s--)                               //?????n-1?
		{
			int min1=10000;                             
			for(j=0;j<n;j++)                            //??????????????????????????
			{
				min1=10000;
				for(k=0;k<n;k++)
				{
					if(a[j][k]<min1)
					{
						min1=a[j][k];
					}
				}
				for(k=0;k<n;k++)
				{
					a[j][k]-=min1;
				}
			}
			for(j=0;j<n;j++)                                   //??????????????????????????
			{
				min1=10000;
				for(k=0;k<n;k++)
				{
					if(a[k][j]<min1)
					{
						min1=a[k][j];
					}
				}
				for(k=0;k<n;k++)
				{
					a[k][j]-=min1;
				}
			}
			b[n-s]=a[1][1];                                      //??????a[1][1]
			for(j=2;j<n;j++)                                     //?a[1][1]?????????????
			{
				for(k=0;k<n;k++)
				{
					a[k][j-1]=a[k][j];
				}
			}
			for(k=2;k<n;k++)
			{
				for(j=0;j<n;j++)
				{
					a[k-1][j]=a[k][j];
				}
			}
		}
		int sum=0;                                               
		for(k=0;k<n-1;k++)                                        //??????????a[1][1]??
		{
			sum=sum+b[k];
		}
		cout<<sum<<endl;                                          //????????
	}
	return 0;
}
//============================================================================
// Name        : 2.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================


void putout(int a[200][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[200][200],int b,int num)//????????
{
	int a1[200][200];
	memcpy(a1,a,40000);
	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[200][200],int b,int num)//????????
{
	int a1[200][200];
	memcpy(a1,a,40000);
	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[200][200],int num,int out)//????????????????????out
{
	for(int i=0;i<num;i++)//??????
		cut1(a,i,num);
	for(int i=0;i<num;i++)//??????
		cut2(a,i,num);
	out=out+a[1][1];//??a[1][1]
	for(int i=1;i<num-1;i++)//?????
		for(int j=0;j<num;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<num-1;i++)//?????
		for(int j=0;j<num-1;j++)
			a[j][i]=a[j][i+1];
	num--;//?????
	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[200][200];//??a[100][100]
		memset(a,0,40000);
		for(int i=0;i<n;i++)//????
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		int p=remain(a,n,0);//??a[1][1]??
		cout<<p<<endl;
	}
	return 0;
}
int main(){
	int n,i,j,k,z,sum,min;
	int a[105][105];
	cin>>n;
	for(int z=0;z<n;z++){
		sum=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>*(*(a+i)+j);
		for(k=0;k<n-1;k++){
			for(i=0;i<n-k;i++){
				min=100000000;
				for(j=0;j<n-k;j++)
					if(*(*(a+i)+j)<min) min=*(*(a+i)+j);
				for(j=0;j<n-k;j++)
					*(*(a+i)+j)-=min;
			}
			for(i=0;i<n-k;i++){
				min=100000000;
				for(j=0;j<n-k;j++)
					if(*(*(a+j)+i)<min) min=*(*(a+j)+i);
				for(j=0;j<n-k;j++)
					*(*(a+j)+i)-=min;
			}
			sum+=*(*(a+1)+1);
			for(i=0;i<n-k;i++)
				for(j=2;j<n-k;j++)
					*(*(a+i)+j-1)=*(*(a+i)+j);
			for(j=0;j<n-k-1;j++)
				for(i=2;i<n-k;i++)
					*(*(a+i-1)+j)=*(*(a+i)+j);
		}
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
	int array[100][100]={0};
	int times,m,n,i,j,k;
	cin>>times;
	m=times;
	while(m--)
	{
		n=times;
		int (*p)[100]=array;
		for(i=0;i<times;i++)
			for(j=0;j<times;j++)
				cin>>*( *(p+i)+j );
		int sum=0;
		for(k=1;k<=times-1;k++)
		{
			int min,now;
			for(i=0;i<n;i++)
			{
				min=*( *(p+i) );
				for(j=1;j<n;j++)
				{
					now=*( *(p+i)+j );
					if(now<min)
						min=now;
				}
				for(j=0;j<n;j++)
					*( *(p+i)+j )=*( *(p+i)+j )-min;
			}
			for(j=0;j<n;j++)
			{
				min=*( *p+j );
				for(i=1;i<n;i++)
				{
					now=*( *(p+i)+j );
					if(now<min)
						min=now;
				}
				for(i=0;i<n;i++)
					*( *(p+i)+j )=*( *(p+i)+j )-min;
			}
			sum=sum+ ( *(*(p+1)+1) );
			if(n==2)
				break;
			for(i=2;i<n;i++)
				for(j=0;j<n;j++)
					*( *(p+i-1)+j )=*( *(p+i)+j );
			for(j=2;j<n;j++)
				for(i=0;i<n-1;i++)
					*( *(p+i)+j-1 )=*( *(p+i)+j );
			n--;
		}
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
	int n,a[120][120]={0},i,N,j,sum,k,ii,jj,all,zhong=999;
	cin>>n;
	N=n;
	all=N;
for(jj=1;jj<=N;jj++)
{
	n=N;sum=0;
	for(i=1;i<=N;i++)
			for(j=1;j<=N;j++)
				cin>>*(*(a+i-1)+j-1);
	for(k=1;k<=N-1;k++)
	{

		
		
		for(ii=0;ii<=n-1;ii++)
		{
			zhong=999;

			for(i=0;i<=n-1;i++)
			{
				if(*(*(a+ii)+i)<=zhong)
					zhong=*(*(a+ii)+i);
			}
			for(i=0;i<=n-1;i++)
				*(*(a+ii)+i)-=zhong;
		}
				for(ii=0;ii<=n-1;ii++)
		{
			zhong=999;

			for(i=0;i<=n-1;i++)
			{
				
				if(*(*(a+i)+ii)<=zhong)
					zhong=*(*(a+i)+ii);
			}
			for(i=0;i<=n-1;i++)
				*(*(a+i)+ii)-=zhong;
		}
				sum+=*(*(a+1)+1);
			for(i=1;i<=n-1;i++)
				for(j=0;j<=n-1;j++)
					*(*(a+i)+j)=*(*(a+i+1)+j);
			for(i=1;i<=n-1;i++)
				for(j=0;j<=n-1;j++)
					*(*(a+j)+i)=*(*(a+j)+i+1);
			n--;
	

			
	}cout<<sum<<endl;
}
	
	return 0;
}
/*
?? -  ?????????   
 
?? // 
?? 
    ????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]????
 
???? 
3

1 2 3

2 3 4

3 4 5

1 2 3

5 4 2

9 4 5

1 2 3

5 4 2

9 5 4


 
???? 
0

2

1

 
*/
int n;
int min(int x[])
{
	int i,j;
	for(i=0;i<n;i++)
	{
		if(x[i]<0)
			continue;
		for(j=0;j<n;j++)
		{
			if(x[i]>x[j]&&x[j]>=0)break;
		}
		if(j==n)return x[i];
	}
	return 0;
}
void cut(int a[50][50],int k)
{
	int  i,j,m;
	for(i=0;i<n;i++)
	{
		m=min(a[i]);
		for(j=0;j<n;j++)
		{
			a[i][j]-=m;
		}
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			m=a[i][j];a[i][j]=a[j][i];a[j][i]=m;
		
		}
	}
	for(i=0;i<n;i++)
	{
		m=min(a[i]);
		for(j=0;j<n;j++)
		{
			a[i][j]-=m;
		}
	}
		for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			m=a[i][j];a[i][j]=a[j][i];a[j][i]=m;
		
		}
	}
}
void xiaojian(int a[50][50],int k)
{
	int i;
	for(i=0;i<n;i++)
	{
		a[k][i]=-1;
		a[i][k]=-1;
	}
}
int main()
{
	int a[50][50][50],j,i,k,l,sum;
	scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		
		for(j=0;j<n;j++)
		{
			for(i=0;i<n;i++)
			{
				scanf("%d",&a[k][j][i]);
			}
		}
		sum=0;
		for(j=1;j<n;j++)
		{
			cut(a[k],j);
			sum=sum+a[k][j][j];
			xiaojian(a[k],j);
		}
		printf("%d\n",sum);
	}
}
/*
 * ditui7.cpp
 *??????
 *  Created on: 2011-11-15
 *      Author: APPLE
 */

int main()                                                  //?????
{
	int i,n,j,a[100][100],b,min,k,sum=0;                     //????
	cin>>n;
	b=n;
	while(b>0)
	{for(i=0;i<n;i++)                                        //????
		for(j=0;j<n;j++)
           cin>>a[i][j];
	  sum=0;
      for(k=n;k>1;k--)                                          //?????????
      { for(i=0;i<k;i++)
	  { min=a[i][0];
		  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++)                                       //?????????
	  {min=a[0][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;i++)                                //???
	      for(j=0;j<k;j++)
	    	  a[i][j]=a[i+1][j];

	       for(j=1;j<k;j++)                                 //???
	    	for(i=0;i<k;i++)
	    		a[i][j]=a[i][j+1];}
	    cout<<sum<<endl;









	     b--;
	 }




	return 0;                                         //?????




}
int main()
{ int n,i,j,k,number;
  scanf("%d",&n);
  number=n;
  for(i=0;i<number;i++)
  {  int p,q,a[100][100],minnum[100],sum=0;
          for(p=0;p<number;p++)
          {  for(q=0;q<number;q++)
             { scanf("%d",&a[p][q]);}
          }
          n=number;
           while(n>1)
       {
           for(p=0;p<n;p++)
          {  
              for(q=0;q<n;q++)
               {if(q==0)
                minnum[p]=a[p][q];
                else if(minnum[p]>a[p][q])
                minnum[p]=a[p][q];}
          }
             for(p=0;p<n;p++)
              {  for(q=0;q<n;q++)
                 {a[p][q]=a[p][q]-minnum[p];}
              }
              for(q=0;q<n;q++)
              {  int tag=0,min;
                for(p=0;p<n;p++)
                {if(a[p][q]==0)
                 tag=1;
                 if(p==0)
                 min=a[p][q];
                 else if(min>a[p][q])
                 min=a[p][q];
                }
                if(tag==0)
                {for(p=0;p<n;p++)
                  {a[p][q]-=min;}
                }
              }
             sum+=a[1][1];
             n--;            
            for(j=0,p=0;p<n+1;p++,j++)
              {for(q=0,k=0;q<n+1;q++,k++)
               { if(p==1)
                  p++;
                  if(q==1)
                  q++;
                  a[j][k]=a[p][q];
               }
              }                              
              
         }
          printf("%d\n",sum);
  }  
return 0;
}
int main(){
	int n,a[100][100],sum=0,i,j,h,min,min1,k=0;
	scanf("%d",&n);
    for(h=0;h<n;h++){
		sum=0;
		k=0;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);
		while(k<n-1){
		for(i=0;i<n-k;i++){
			min=a[i][0];
			for(j=0;j<n-k;j++){
				if(a[i][j]<min)
					min=a[i][j];
			}
		
			for(j=0;j<n-k;j++){
		       	a[i][j]-=min;
			
			}
		}
		for(i=0;i<n-k;i++){
			min1=a[0][i];
			for(j=0;j<n-k;j++){
				if(a[j][i]<min1)
					min1=a[j][i];
			}
		
			for(j=0;j<n-k;j++){
		       	a[j][i]-=min1;
			
			}
		}
        sum+=a[1][1];
		
		for(i=0;i<n-k;i++)
			for(j=0;j<n-k;j++){
			if(j>=2&&i<2)
				a[i][j-1]=a[i][j];
			else if(i>=2&&j<2)
				a[i-1][j]=a[i][j];
			else if(i>=2&&j>=2)
				a[i-1][j-1]=a[i][j];
			}
         k++;
		
		}
		printf("%d\n",sum);
	}
		return 0;
}
/*
 *???: matrix_seq.cpp
 *??: ???
 *????: 2012-11-19
 *??: ????????????a[1][1]??
 */



int a[MAXSIZE][MAXSIZE],n;

void sub_to_zero() //????
{
	int m; //????????
	for (int i=0;i<n;i++){ //????
		m=a[i][0];
		for (int j=1;j<n;j++){ //??????
			if (a[i][j]<m)
				m=a[i][j];
		}
		if (m>0){
			for (int j=0;j<n;j++) //????
				a[i][j]-=m;
		}
	}
	for (int i=0;i<n;i++){ //????
		m=a[0][i];
		for (int j=1;j<n;j++){
			if (a[j][i]<m)
				m=a[j][i];
		}
		if (m>0){
			for (int j=0;j<n;j++)
				a[j][i]-=m;
		}
	}
}

void delimination() //????
{
	for (int i=1;i<n-1;i++){ //???0??0??????
		a[0][i]=a[0][i+1];
		a[i][0]=a[i+1][0];
	}
	for (int i=2;i<n;i++)
		for (int j=2;j<n;j++)
			a[i-1][j-1]=a[i][j]; //???????
	--n; //?n??
}

int calcMatrix() //???????????
{
	int sum=0; //????
	while (n>1){ //???????1?
		sub_to_zero(); //??
		sum+=a[1][1]; //??a[1][1]
		delimination(); //??
	}
	return sum;
}

int main()
{
	int nMatrix; //???????
	cin >> nMatrix;
	for (int i=0;i<nMatrix;i++){ //??nMatrix???
		n=nMatrix; //??????
		for (int j=0;j<nMatrix;j++)
			for (int k=0;k<nMatrix;k++)
				cin >> a[j][k]; //????
		cout << calcMatrix() << endl;
	}
	return 0;
}
int cal(int a[100][101],int n)
{	
	int i,j,k,min,t=0,p,b[100][101]={0};
	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(i=0;i<n;i++)
	{
		p=1;
		min=a[0][i];
		for(j=0;j<n;j++)
		{
			if(a[j][i]<min)
				min=a[j][i];
		}
		for(j=0;j<n;j++)
		{
			a[j][i]-=min;
		}
	}
	t=a[1][1];
	b[0][0]=a[0][0];
	if(n==2)
		return a[1][1];
	for(i=2;i<n;i++)
	{
		b[i-1][0]=a[i][0];
		b[0][i-1]=a[0][i];
	}
	for(i=2;i<n;i++)
	{
		for(j=2;j<n;j++)
		{
			b[i-1][j-1]=a[i][j];
		}
	}
	return t+cal(b,n-1);
}
void main()
{
    int n,i,j,k,m,t,a[100][101]={0},sum;
	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]);
			}
		}								//1?????
		printf("%d\n",cal(a,n));
	}									
}
int main()
{int a[100][100][100]={0};
 int min[100][100]={0};
 int n,i,j,k,l,s,sum[100]={0};
 cin>>n;
 for(i=0;i<n;i++)
  {for(j=0;j<n;j++)
    {for(k=0;k<n;k++)
    cin>>a[i][j][k];}}
 for(i=0;i<n;i++)
   {for(s=n;s>1;s--)
   {for(j=0;j<s;j++)
     {min[i][j]=a[i][j][0];
                      for(l=0;l<s;l++)
                      {if(a[i][j][l]<min[i][j])
                        min[i][j]=a[i][j][l];}
                        for(k=0;k<s;k++)
                        a[i][j][k]=a[i][j][k]-min[i][j];
                        }
  for(k=0;k<s;k++)
   {min[i][k]=a[i][0][k];
     for(l=0;l<s;l++)
                      {if(a[i][l][k]<min[i][k])
                        min[i][k]=a[i][l][k];}
   for(j=0;j<s;j++)
     a[i][j][k]=a[i][j][k]-min[i][k];}
   sum[i]=sum[i]+a[i][1][1];
   for(j=0;j<s;j++){for(k=1;k<s-1;k++)
    a[i][j][k]=a[i][j][k+1];}
   for(k=0;k<s-1;k++){for(j=1;j<s-1;j++)
     a[i][j][k]=a[i][j+1][k];}}}
   for(i=0;i<n;i++)
    cout<<sum[i]<<endl;
    return 0;
    }
//#define main xmain


int main()
{
    int a[100][100];
    int i, j, k, m, n;
    int min, sum;

    scanf("%d", &m);
    for (k=0; k<m; k++) {
        /* ??? */
        n = m;
        sum = 0;
        /* ??n*n?? */
        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                scanf("%d", &a[i][j]);
            }
        }
        while (n>1) {
            /* ??? */
            for (i=0; i<n; i++) {
                min = a[i][0];
                for (j=1; 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=1; i<n; i++) {
                    if (a[i][j] < min) {
                        min = a[i][j];
                    }
                }
                for (i=0; i<n; i++) {
                    a[i][j] -= min;
                }
            }
            /* ??(1,1)?? */
            sum += a[1][1];
            /* ??? */
            for (i=2; i<n; i++) {
                for (j=0; j<n; j++) {
                    a[i-1][j] = a[i][j];
                }
            }
            /* ??? */
            for (j=2; j<n; j++) {
                for (i=0; i<n; i++) {
                    a[i][j-1] = a[i][j];
                }
            }
            /* ??????1 */
            n--;
        }
        /* ???? */
        printf("%d\n", sum);
    }
    return 0;
}



char mn[] = {
    3, 9, 31
};

int xn = 0;

int max_files = sizeof(mn) / sizeof(mn[0]);

char * output_dir = "data";

int rnd(int min, int max) 
{
    return min + ((rand() << 15) | rand()) % (max - min + 1);
}

void xbuild()
{
    int i, j, k, n;
    n = mn[xn];
    printf("%d\n", n);
    for (k=0; k<n; k++) {
        for (i=0; i<n; i++) {
            printf("%d", rnd(1, n*n));
            for (j=1; j<n; j++) {
                printf(" %d", rnd(1, n*n));
            }
            printf("\n");
        }
    }
    xn++;
}
/*
 * file    homework 10_1
 * author  ??
 * date    2010-12-03
 * description
           ?????????????????a[1][1]??
*/



int Matrix(int a[][100], int sum, int n);

int main()
{
	int a[100][100];
	int n, i, j, k, sum = 0;
	cin >> n;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
			for (k = 0; k < n; k++)
				cin >> a[j][k];
		Matrix(a, sum, n);
	}
	return 0;
}

int  Matrix(int a[][100], int sum, int n)
{
	int i, j, min;
	if (n == 1)
	{
		cout << sum << endl;
		return 0;
	}
	for (i = 0; i < n; i++)
	{
		min = a[i][0];
		for (j = 1; j < n; j++)
			if (min > a[i][j])
				min = a[i][j];
		for (j = 0; j < n; j++)
			a[i][j] = a[i][j] - min;
	}
	for (i = 0; i < n; i++)
	{
		min = a[0][i];
		for (j = 1; j < n; j++)
			if (min > a[j][i])
				min = a[j][i];
		for (j = 0; j < n; j++)
			a[j][i] = a[j][i] - min;
	}
	sum = sum + a[1][1];
	for (i = 0; i < n; i++)
		for (j = 2; j < n; j++)
			a[i][j - 1] = a[i][j];
	for (i = 0; i < n - 1; i++)
		for (j = 2; j < n; j++)
			a[j - 1][i] = a[j][i];
	Matrix(a, sum, n - 1);
	return 0;
}
int n,a[100][100];
void hang(int m)
{
    int min=10000;     
    for(int i=0;i<n;i++)
    {
            if(a[m][i]<min) min=a[m][i];
    }     
    for(int i=0;i<n;i++)  a[m][i]-=min;
}
void lie(int m)
{
     int min=10000;
     for(int i=0;i<n;i++)
     {
            if(a[i][m]<min)  min=a[i][m]; 
     }
     for(int i=0;i<n;i++)   a[i][m]-=min;
}
void del(int a[100][100])
{
     int i,j;
     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];           
          }             
     }
}
int main()
{
    int i;
    cin>>n;
    for(int l=0;l<n;l++)
    {
       for(int i=0;i<n;i++)
       {
          for(int j=0;j<n;j++)
          {
                 cin>>a[i][j]; 
          }  
       }
       int k=0,sum=0;     
       while(k<n-1)
       {
          for(i=0;i<n;i++)  hang(i);
          for(i=0;i<n;i++)  lie(i);
          sum+=a[1][1];
          del(a);
          k++;
       }
       cout<<sum<<endl;
    }
    return 0;
}
int n,m,min1;
int a[110][110];
void del()
{
	int i,j;
	for(i=0;i<m;i++)
		for(j=1;j<m;j++)
			a[i][j]=a[i][j+1];
	for(i=0;i<m;i++)
		for(j=1;j<m;j++)
			a[j][i]=a[j+1][i];
}
void delmin(int x,int y,int dx,int dy)
{
	if(x==m||y==m)
		return;
	if(a[x][y]<min1)
		min1=a[x][y];
	delmin(x+dx,y+dy,dx,dy);
	a[x][y]-=min1;
}
int main()
{
	cin>>n;
	int i=0,j=0,k=0,sum=0;
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j];
		for(sum=0,m=n;m>1;m--)
		{
			for(i=0;i<2*m;i++)
			{
				min1=10000;
			    delmin((i%m)*(1-i/m),(i%m)*(i/m),i/m,1-i/m);
			}
			sum+=a[1][1];
			del();
		}
		cout<<sum<<endl;
	}
}
int main()
{
    int n=0,i=0,j=0,time=0,sum=0;
    cin>>n;
    int s=n; 
    int a[100][100],b[100],c[100];
    for(time=0;time<s;time++)                  //while??????????????? .time??????????????????+1 
    {                       
       for(i=0;i<100;i++)
       {
           b[i]=1000000;        
           c[i]=1000000;      
       }                            
       for(i=0;i<s;i++)
       {
           for(j=0;j<s;j++)
           {
               cin>>a[i][j];            
           }            
       }              
       sum=0;            //?????? ,??????? 
       while(true)
       {         
       for(i=0;i<100;i++)
       {
           b[i]=1000000;        
           c[i]=1000000;      
       }                                         
       for(i=0;i<n;i++)
       {
           for(j=0;j<n;j++)
           {
                if(a[i][j]<b[i])
                {
                     b[i]=a[i][j];           
                }           
           }            
       }                          //???????? 
       for(i=0;i<n;i++)
       {
            for(j=0;j<n;j++)
            {
                   a[i][j]=a[i][j]-b[i];         
            }           
       }                          //????????????  
       for(j=0;j<n;j++)
       {
            for(i=0;i<n;i++)
            {
                if(a[i][j]<c[j])
                {
                     c[j]=a[i][j];           
                }            
            }           
       }                          //???????
       for(j=0;j<n;j++)
       {
            for(i=0;i<n;i++)
            {
                   a[i][j]=a[i][j]-c[j];         
            }           
       }                          //????????
       sum=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(j=1;j<n-1;j++)
       {
           for(i=0;i<n-1;i++)
           {
                a[i][j]=a[i][j+1];             
           }              
       }                        //?? 
       n=n-1;
       if(n==1)
       {
            n=s;   
            break;   
       }                        //???????? 
       }
       cout<<sum<<endl;          //???? 
    }   
      return 0;
}
int main()
{
	int num;
	cin >> num;
	int n = num, numcas = num;
	
	int a[301][301];
	while (num--)
	{
		int s = 0;
		memset(a, 0, sizeof(a));
		for (int i = 0; i < numcas; i++)
		for (int j = 0; j < numcas; j++)
		{
			cin >> a[i][j];
		}
		
		n = numcas;
		while (1)
		{
			
			if (n == 0) {cout << s << endl; break;}	

			
			for (int j  = 0; j < n ; j++)
			{
				int min = 1000000;
				for (int k = 0;k < n; k++)
				{
					if (a[j][k] < min) min = a[j][k];
				}				
				for (int i = 0; i < n; i++) a[j][i] -= min;
			}
							/*	for (int j = 0; j < n; j++) {
			for (int i = 0; i < n; i++) 
			{
				cout << a[j][i] << " ";
			}
			cout << endl;
			}*/
			for (int j  = 0; j < n ; j++)
			{
				int min = 1000000;
				for (int k = 0;k < n; k++)
				{
					if (a[k][j] < min) min = a[k][j];
				}				
				for (int i = 0; i < n; i++) a[i][j] -= min;
			}
			

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

	return 0;
}
int main()
{
	int n;
	scanf("%d",&n);
	int sz[49][49][49];
	int i,j,k;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			for(k=1;k<=n;k++)
			{
				scanf("%d",&sz[i][j][k]);
			}
		}
	}
	int nn,min;
	int re[49]={0};
	for(i=1;i<=n;i++)                                 //???
	{
		for(nn=1;nn<=n-1;nn++)                        //????
		{
			for(j=nn;j<=n;j++)                        //???
			{
				min=sz[i][j][nn];
				while(min!=0)
				{
					for(k=nn;k<=n;k++)                //??????????
					{
						if(sz[i][j][k]<min)
						{
							min=sz[i][j][k];
						}
					}
					for(k=nn;k<=n;k++)                //???
					{
						sz[i][j][k]-=min;
					}
				}
			}
			for(j=nn;j<=n;j++)                        //???
			{
				min=sz[i][nn][j];
				while(min!=0)
				{
					for(k=nn;k<=n;k++)                //??????????
					{
						if(sz[i][k][j]<min)
						{
							min=sz[i][k][j];
						}
					}
					for(k=nn;k<=n;k++)                //???
					{
						sz[i][k][j]-=min;
					}
				}
			}
			re[i]+=sz[i][nn+1][nn+1];
			sz[i][nn+1][nn+1]=sz[i][nn][nn];
			for(j=nn+2;j<=n;j++)
			{
				sz[i][nn+1][j]=sz[i][nn][j];
			}
			for(j=nn+2;j<=n;j++)
			{
				sz[i][j][nn+1]=sz[i][j][nn];
			}
		}
		printf("%d\n",re[i]);
	}
	return 0;
}