semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
//????HW8_02.cxx
//?????(1100019007)
//???2012-11-18
//????????????

int arr[100][100];
void solve(int n);//??
void arrayin(int n);//????
int down_cast(int n);//??????
void matrix_out(int n);//????
int main(int argc, char **argv)
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)solve(n);
	return 0;
}
void arrayin(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>arr[i][j];
		}
	}
}
void solve(int n){
	arrayin(n);
	cout<<down_cast(n)<<endl;
}
int down_cast(int n){
	if(n==1)return 0;
	int min,res;
	for(int i=0;i<n;i++){
		min=65535;
		for(int j=0;j<n;j++)if(arr[i][j]<min)min=arr[i][j];
		for(int j=0;j<n;j++)arr[i][j]-=min;
	}//???
	for(int i=0;i<n;i++){
		min=65535;
		for(int j=0;j<n;j++)if(arr[j][i]<min)min=arr[j][i];
		for(int j=0;j<n;j++)arr[j][i]-=min;
	}//???
	res=arr[1][1];
	for(int i=2;i<n;i++)for(int j=0;j<n;j++)arr[i-1][j]=arr[i][j];
	for(int i=2;i<n;i++)for(int j=0;j<n;j++)arr[j][i-1]=arr[j][i];
	//matrix_out(n);
	return res+down_cast(n-1);//????
}
void matrix_out(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cout<<arr[i][j]<<" ";
		}
		cout<<endl;
	}
}
int a[100][100];
int main()
{
	int m,n,i,j,t,k=0,p,ans;
	scanf("%d",&m);
	while(k<m)
	{
		n=m;
		ans=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",*(a+i)+j);
   p=1;
			while(n>p)
			{
				for(i=0;i<n;i++)
				{if(i&&i<p)continue;
					t=*(*(a+i)+0);
					for(j=p;j<n;j++)
						t=t>*(*(a+i)+j)?*(*(a+i)+j):t;
					for(j=0;j<n;j++)
					    *(*(a+i)+j)-=t;
				}
				for(i=0;i<n;i++)
				{if(j&&j<p)continue;
						t=*(*(a+0)+i);
						for(j=p;j<n;j++)
							t=t>*(*(a+j)+i)?*(*(a+j)+i):t;
						for(j=0;j<n;j++)
							*(*(a+j)+i)-=t;
				}
				ans+=*(*(a+p)+p);
				p++;
			}
			printf("%d\n",ans);
			k++;
	     }
}
int sm1(int line,int sum1,int array1[100][100])
{
	int min=array1[line][0];
	for (int i=0;i<sum1;i++)
		if (min>array1[line][i])
			min=array1[line][i];
	return min;
}
int sm2(int row,int sum2,int array2[100][100])
{
	int min=array2[0][row];
	for (int i=0;i<sum2;i++)
		if (min>array2[i][row])
			min=array2[i][row];
	return min;
}
int main ()
{
	int n;
	cin>>n;
	for (int step=0;step<n;step++)
	{
		int jz[100][100],he=0;
		 for (int i=0;i<n;i++)
		     for (int j=0;j<n;j++)
			   cin>>jz[i][j];
		   for (int Count=0;Count<n-1;Count++)
		   {
			   for (int i=0;i<n-Count;i++)
			   {   int minl=sm1(i,n-Count,jz);
			      for (int j=0;j<n-Count;j++)
			       jz[i][j]-=minl;
			   }
		      for (int j=0;j<n-Count;j++)
		      {    int minr=sm2(j,n-Count,jz);
			      for (int i=0;i<n-Count;i++)
			       jz[i][j]-=minr;
		       }
		       he+=jz[1][1];
		       for (int i=2;i<n-Count;i++)
		    	   for (int j=2;j<n-Count;j++)
		    		   jz[i-1][j-1]=jz[i][j];
		       for (int i=2;i<n-Count;i++)
		    	   jz[i-1][0]=jz[i][0];
		       for (int j=2;j<n-Count;j++)
		    	   jz[0][j-1]=jz[0][j];
		   }
		   cout<<he<<endl<<endl;
    }
	return 0;
}
int a[100][100]={0};
int n;
int count1=0;
int (*p)[100]=NULL;
int deal();
int main()
{
	int i,j,k;
	cin>>n;
	p=a;
	for (k=0;k<n;k++)
	{
		count1=0;
		for (i=0;i<n;i++)
			for (j=0;j<n;j++)
				cin>>*(*(p+i)+j);
		deal();
	}
return 0;
}
int deal()
{
	int min;
	int i,j,k;
	for (k=0;k<n-1;k++)
	{
		for (i=0;i<n;i++)
		{
			min=*(*(p+i));
			for (j=0;j<n;j++)
				if (*(*(p+i)+j)<min)
				{
					min=*(*(p+i)+j);
				}
			for (j=0;j<n;j++)
				*(*(p+i)+j)=*(*(p+i)+j)-min;
		}
		for (j=0;j<n;j++)
		{
			min=*(*p+j);
			for (i=0;i<n;i++)
				if (*(*(p+i)+j)<min)
				{
					min=*(*(p+i)+j);
				}
			for (i=0;i<n;i++)
				*(*(p+i)+j)=*(*(p+i)+j)-min;
		}
		count1+=*(*(p+1)+1);
		for (i=1;i<n-1;i++)
			for (j=0;j<n;j++)
			{
				*(*(p+i)+j)=*(*(p+i+1)+j);
			}
		for (j=1;j<n-1;j++)
			for (i=0;i<n;i++)
			{
				*(*(p+i)+j)=*(*(p+i)+j+1);
			}
	}
	cout<<count1<<endl;
	return 0;
}
int main()
{
	int n,a[100][100],i,j,k,l;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		int sum=0;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				scanf("%d",&a[j][k]);
		for(l=0;l<n-1;l++)
		{
			for(j=0;j<n-l;j++)
			{
				int min=a[j][0];
				for(k=0;k<n-l;k++)
				{
					if(a[j][k]<min)
						min=a[j][k];
				}
				for(k=0;k<n-l;k++)
					a[j][k]=a[j][k]-min;
			}
			for(j=0;j<n-l;j++)
			{
				int min=a[0][j];
				for(k=0;k<n-l;k++)
				{
					if(a[k][j]<min)
						min=a[k][j];
				}
				for(k=0;k<n-l;k++)
				{
					a[k][j]=a[k][j]-min;
				}
			}
							
			sum+=a[1][1];

			for(j=1;j<n-l-1;j++)
				a[0][j]=a[0][j+1];
			for(j=1;j<n-l;j++)
				a[j][0]=a[j+1][0];
			for(j=1;j<n-l-1;j++)
				for(k=1;k<n-l-1;k++)
					a[j][k]=a[j+1][k+1];
		}
		printf("%d\n",sum);
	}
	
	return 0;
}
int main()
{
	int k,m,n,a[100][100],i,j,min,sum=0;
	scanf("%d",&n);
	k=m=n;
	while(k--)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				scanf("%d",&a[i][j]);
			}
		}
		while(--m)
		{
			for(i=0;i<=m;i++)
			{
				min=a[i][0];
				for(j=0;j<=m;j++)
				{
					if(a[i][j]<min) min=a[i][j];
				}
				if(min!=0)
				{
					for(j=0;j<=m;j++) a[i][j]-=min;
				}
			}
			for(i=0;i<=m;i++)
			{
				min=a[0][i];
				for(j=0;j<=m;j++)
				{
					if(a[j][i]<min) min=a[j][i];
				}
				if(min!=0)
				{
					for(j=0;j<=m;j++) a[j][i]-=min;
				}
			}
			sum+=a[1][1];
			for(i=1;i<m;i++) a[0][i]=a[0][i+1];
			for(i=1;i<m;i++) a[i][0]=a[i+1][0];
			for(i=1;i<m;i++)
				for(j=1;j<m;j++) a[i][j]=a[i+1][j+1];
		}
		printf("%d\n",sum);
		sum=0;
		m=n;
	}
	return 0;
}
int main()
{
	int n;
	cin >> n;
	int sum = 0;
	for (int ii = 0; ii < n; ii++)
	{
		sum = 0;
		int a[100][100];
		for (int i2 = 0; i2 < n; i2++)
			for (int i3 = 0; i3 < n; i3++)
				cin >> a[i2][i3];
		//
		for (int i = 1; i < n; i++)
		{
			int min1;
			for (int j = i; j < n; j++)
			{
				min1 = 100000;
				for (int j2 = i;j2 < n; j2++)
					min1 = min(min1,a[j][j2]);
				min1 = min(min1,a[j][0]);
				for (int j2 = 0; j2 < n; j2++)
					a[j][j2] -= min1;
			}
			min1 = 100000;
			for (int j = i; j < n; j++)
				min1 = min(min1,a[0][j]);
			min1 = min(min1,a[0][0]);
			for (int j2 = 0; j2 < n; j2++)
				a[0][j2] -= min1;


			for (int j = i; j < n; j++)
			{
				min1 = 100000;
				for (int j2 = i;j2 < n; j2++)
					min1 = min(min1,a[j2][j]);
				min1 = min(min1,a[0][j]);
				for (int j2 = 0; j2 < n; j2++)
					a[j2][j] -= min1;
			}
			min1 = 100000;
			for (int j = i; j < n; j++)
				min1 = min(min1,a[j][0]);
			min1 = min(min1,a[0][0]);
			for (int j2 = 0; j2 < n; j2++)
				a[j2][0] -= min1;

			sum += a[i][i];
		}
		cout << sum << endl;
	}
}
/*
 * 1000012795-?????????.cpp
 *
 *  Created on: 2010-12-29
 *      Author: Administrator
 */
int a[1000][1000]={0};
int sum=0;
void cut(int n)
{
	int i,j,k;
	int min=10000;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{

		   if(min>a[i][j])
			   min=a[i][j];
		}
		for(k=0;k<n;k++)
			a[i][k]=a[i][k]-min;
		min=10000;
	}
	min=10000;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
		    if(min>a[j][i])
				min=a[j][i];
		}
	    for(k=0;k<n;k++)
		    a[k][i]=a[k][i]-min;
	    min=10000;
	}
	sum=sum+a[1][1];
}
int main()
{
	int n,i,j,k,p;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>a[j][k];
		for(p=1;p<n;p++)
		{
		 cut(n-p+1);
		 for(j=1;j<n-p;j++)
		 	for(k=1;k<n-p;k++)
		 	{
		 		a[j][k]=a[j+1][k+1];
		 	}
		 for(k=1;k<(n-p);k++)
			 a[0][k]=a[0][k+1];
		 for(k=1;k<(n-p);k++)
			 a[k][0]=a[k+1][0];
		}
		cout<<sum<<endl;
		sum=0;
	}
	return 0;
}
int JU[100][100];
int main()
{
	int n,i,j,h,l,M;
	void JUbian(int N,int JU[100][100]);
	void JUxiao(int N,int JU[100][100]);
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		M=0;
		for(h=0;h<n;h++)
		{
			for(l=0;l<n;l++)
			{scanf("%d",&JU[h][l]);}
		}
		for(j=n;j>1;j--)
		{
			JUbian(j,JU);
			M=M+JU[1][1];
			JUxiao(j,JU);
		}
		printf("%d\n",M);
	}
	return 0;
}

void JUbian(int n,int JU[100][100])
{
	int h,l,min;
	for(h=0;h<n;h++)
	{
		min=JU[h][0];
		for(l=1;l<n;l++)
		{if(JU[h][l]<min) min=JU[h][l];}
	    for(l=0;l<n;l++)
		{JU[h][l]=JU[h][l]-min;}
	}
	for(l=0;l<n;l++)
	{
		min=JU[0][l];
		for(h=1;h<n;h++)
		{if(JU[h][l]<min) min=JU[h][l];}
		for(h=0;h<n;h++)
		{JU[h][l]=JU[h][l]-min;}
	}
}


void JUxiao(int n,int JU[100][100])
{
	int h,l;
	for(h=0;h<n-1;h++)
	{
		for(l=0;l<n;l++)
		{
			if(h>0) {JU[h][l]=JU[h+1][l];}
		}
	}
	for(l=0;l<n-1;l++)
	{
		for(h=0;h<n-1;h++)
		{
			if(l>0) {JU[h][l]=JU[h][l+1];}
		}
	}
}
int main()
{
	int n ,a[100][100] , min ,sum=0 , t=0 , c=0;
	cin >>n;
	for (int i=0;i < n;i++)//??n???
	{
	   for (int j=0;j < n;j++)//??n*n??
	   {
	      for (int k=0;k < n;k++)
		  cin >>a[j][k];
		  cout <<endl;
	   }
	   for (int l=0;l < n-1;l++)//???????n-1???
	   {
	      for (int j=0;j < n-l;j++)
		  {
		     t=0;
		     for (int q=0;q < n-l;q++)
		       if (a[j][q]==0) t=t+1;//????0????????0
			  if (t > 0) continue;
			  else 
			  {
			  min = a[j][0];
			  for (int y=1;y < n-l;y++)//?????????
			    if (min > a[j][y]) min = a[j][y];
			  for (int r=0;r < n-l;r++)
			     a[j][r]=a[j][r]-min;//???0
			  }
		  }
		   for (int k=0;k < n-l;k++)
		  {
		     c=0;
		     for (int p=0;p < n-l;p++)
		       if (a[p][k]==0) c=c+1;
		     if (c > 0) continue;
		       else 
			  {
			  min = a[0][k];
			  for (int y=1;y < n-l;y++)
			    if (min > a[y][k]) min = a[y][k];
			  for (int r=0;r < n-l;r++)
			     a[r][k]=a[r][k]-min;
			  }
		  }
		   sum=sum+a[1][1];//?sum????
		   a[0][0]=a[0][0];//????????????
		   for (int e=1;e < n-l;e++)
		       a[0][e] = a[0][e+1];
		   for (int g=1;g < n-l;g++)
		       a[g][0]=a[g+1][0];
		   for (int f=1;f < n-l;f++)
		   {
		      for (int s=1;s < n-l;s++)
		       a[f][s]=a[f+1][s+1];
		   }
	   }
	   cout <<sum<<endl;
	   sum=0;
	}
	return 0;
}
int main()
{
	int n,i,j,k,m,h,l,s=0,n1;
	cin>>n;//??n
	n1=n;//??n
	int min1[100];
	int min2[100];//??????????
	int a[100][100];//??
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{cin>>a[j][k];}//????
		}
		while(n!=1)//?????1?
		{
		for(j=0;j<n;j++)
		{min1[j]=a[j][0];
			for(k=0;k<n;k++)
			{if(min1[j]>a[j][k])
			{min1[j]=a[j][k];}
			}
		}
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{a[j][k]=a[j][k]-min1[j];}
		}
		for(k=0;k<n;k++)
		{min2[k]=a[0][k];
			for(j=0;j<n;j++)
			{if(min2[k]>a[j][k])
			{min2[k]=a[j][k];}
			}
		}
		for(k=0;k<n;k++)
		{
			for(j=0;j<n;j++)
			{a[j][k]=a[j][k]-min2[k];}//?????????????
		}
		s=s+a[1][1];//??a[1][1]
		for(m=2;m<n;m++)
		{
			a[0][m-1]=a[0][m];
			a[m-1][0]=a[m][0];
		}
		for(h=2;h<n;h++)
		{
			for(l=2;l<n;l++)
			{a[h-1][l-1]=a[h][l];
			}
		}//????????
		n--;//??????
	}
		cout<<s<<endl;//???
		s=0;
		n=n1;//??
	}
	return 0;
}
int main()
{
	int i,j,k,l,n,a[100][100],min,sum;
	scanf("%d",&n);
	for(l=0;l<n;l++)
	{
		sum=0;
		for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		scanf("%d",&a[i][j]);
		k=n;
		while(k>1)
		{
	    for(i=0;i<k;i++)
	    {
		min=100000;
	    for(j=0;j<k;j++)
	    if(a[i][j]<min)min=a[i][j];
	    for(j=0;j<k;j++)
	    a[i][j]-=min;
		}
		for(j=0;j<n;j++)
		{
		min=100000;
		for(i=0;i<k;i++)
		if(a[i][j]<min)min=a[i][j];
		if(min==0)continue;
		else for(i=0;i<k;i++)
	    a[i][j]-=min;	
		}
		sum+=a[1][1];
		for(i=1;i<k-1;i++)
		a[i][0]=a[i+1][0];
		for(j=1;j<k-1;j++)
		a[0][j]=a[0][j+1];
		for(i=1;i<k-1;i++)
		for(j=1;j<k-1;j++)
		a[i][j]=a[i+1][j+1];
		k--;
	    }
	    printf("%d\n",sum);			
	}
	return 0;
}
int main()
{
	int n,i,j,k,l,a[100][100],min=0,sum[100];
	scanf("%d",&n);
	for(k=1;k<=n;k++)   //n???
	{   sum[k]=0;
	for(i=0;i<=n-1;i++)
		for(j=0;j<=n-1;j++)
			scanf("%d",&a[i][j]);
	for(l=1;l<=n-1;l++)//????n-1???
	{
		for(i=0;i<=n-l;i++)//???
		{   min=a[i][0];
		for(j=1;j<=n-l;j++)
			if(a[i][j]<min)
				min=a[i][j];
		for(j=0;j<=n-l;j++)
			a[i][j]=a[i][j]-min;
		}
		for(j=0;j<=n-l;j++)//???
		{
			min=a[0][j];
			for(i=1;i<=n-l;i++)
				if(a[i][j]<min)
					min=a[i][j];
			for(i=0;i<=n-l;i++)
				a[i][j]=a[i][j]-min;
		}

		sum[k]=sum[k]+a[1][1];

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

	}
	}
	for(k=1;k<=n;k++)
		printf("%d\n",sum[k]);
	return 0;
}
int matrix[100][100] = {0} ;
void change(int k , int n)//???????????? 
{
    matrix[k + 1][k + 1] = matrix[k][k] ;
    int i = 0 ;
    if( n - 1 >= k + 2)
    {
        for( i = k + 2 ; i <= n - 1 ; i ++ )
             matrix[k + 1][i] = matrix[k][i] ;
        for( i = k + 2 ; i <= n - 1 ; i ++ )
             matrix[i][k + 1] = matrix[i][k] ;
    }
}
int main()
{
    int n = 0 ;
    cin >> n ;
    int m = 0 ;
    int sum[100] = {0} ;
    for( m = 0 ; m <= n - 1 ; m ++ )
    {
         
         int i = 0 , j = 0 ;
         for( i = 0 ; i <= n - 1 ; i ++ )
              for( j = 0 ; j <= n - 1 ; j ++ )
                   cin >> matrix[i][j] ;
         int k = 0 ;
         for( k = 0 ; k <= n - 2 ; k ++ )
         {
              int min = 10000 ;
              for( i = k ; i <= n - 1 ; i ++ )//????????? 
              {
                   min = 10000 ;
                   for( j = k ; j <= n - 1 ; j ++ )
                        if( matrix[i][j] < min )
                            min = matrix[i][j] ;
                   for( j = k ; j <= n - 1 ; j ++ )
                        matrix[i][j] = matrix[i][j] - min ;  
              }
              for( j = k ; j <= n - 1 ; j ++ )//?????????? 
              {
                   min = 10000 ;
                   for( i = k ; i <= n - 1 ; i ++ )
                        if( matrix[i][j] < min )
                            min = matrix[i][j] ;
                   for( i = k ; i <= n - 1 ; i ++ )
                        matrix[i][j] = matrix[i][j] - min ;  
              } 
              sum[m] = sum[m] + matrix[k + 1][k + 1] ;//???????????????? 
              change(k , n) ;
         }
    }
    for( m = 0 ; m <= n - 1 ; m ++ )
         cout << sum[m] << endl ;
    return 0 ;
}
int main()
{
	int a[100][100], n, i, j, m, k, sum, min;
	cin >> n;
	for(m = 1 ; m <= n ; m ++)
	{
		memset(a, 0, sizeof(a));
		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 = 100000;
				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 = 100000;
				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 = 1 ; i < n ; i ++)
				for(j = 0 ; j < n ; j ++)
					*(*(a + i) + j) = *(*(a + i + 1) + j);
			for(i = 1 ; i < n ; i ++)
				for(j = 0 ; j < n ; j ++)
					*(*(a + j) + i) = *(*(a + j) + i +1);
			
		}
		cout << sum << endl;
	}
	return 0;
}
/* Name        : ?????????
 * Version     : 1.0
 * Date        : 2013-01-11
 * New         : 
 * Description : 
 * State       : Design
 */
int main()
{
    int N=0;
    cin>>N;
    for (int n=0;n<N;n++)
    {
        int a[100][100]={0};
        int Sum=0;
        for (int i=0;i<N;i++)
            for (int j=0;j<N;j++) cin>>a[i][j];
        for (int m=N;m>1;m--)
        {
            for (int i=0;i<m;i++)
            {
                int Min=a[i][0];
                for (int j=0;j<m;j++)
                    if (Min>a[i][j]) Min=a[i][j];
                for (int j=0;j<m;j++)
                    a[i][j]=a[i][j]-Min;
            }
            for (int j=0;j<m;j++)
            {
                int Min=a[0][j];
                for (int i=0;i<m;i++)
                    if (Min>a[i][j]) Min=a[i][j];
                for (int i=0;i<m;i++)
                    a[i][j]=a[i][j]-Min;
            }
            Sum=Sum+a[1][1];
            for (int j=1;j<m-1;j++) a[0][j]=a[0][j+1];
            for (int i=1;i<m-1;i++) a[i][0]=a[i+1][0];
            for (int i=1;i<m-1;i++)
                for (int j=1;j<m-1;j++) a[i][j]=a[i+1][j+1];
        }
        cout<<Sum<<endl;
    }
    return 0;
}
int main()
{
	int i,j,k,n,t,minrow,mincol,sum;
	int p[100][100];
	cin >> n;
	for(k = 0 ; k < n ; k++)
	{
		sum = 0;
		t = n;
		for(i = 0 ; i < t ; i++)
		{
			for(j = 0 ; j < t ; j++)
			{
				cin >> *(*(p + i) + j);
			}
		}
		while(t != 1)
		{
			for(i = 0 ; i < t ; i++)
			{
				minrow = 100000;
				for(j = 0 ; j < t ; j++)
				{
					if(*(*(p + i) + j) < minrow)
					{
						minrow = *(*(p + i) + j);
					}
				}
				for(j = 0 ; j < t ; j++)
				{
					*(*(p + i) + j) = *(*(p + i) + j) - minrow;
				}
			}
			for(j = 0 ; j < t ; j++)
			{
				mincol = 100000;
				for(i = 0 ; i < t ; i++)
				{
					if(*(*(p + i) + j) < mincol)
					{
						mincol = *(*(p + i) + j);
					}
				}
				for(i = 0 ; i < t ; i++)
				{
					*(*(p + i) + j) = *(*(p + i) + j) - mincol;
				}
			}
			sum += *(*(p + 1) + 1);
			for(i = 0 ; i < t ; i ++)
			{
				for(j = 1 ; j < t ; j++)
				{
					*(*(p + i) + j) = *(*(p + i) + j + 1);
				}
			}
			for(j = 0 ; j < t ; j ++)
			{
				for(i = 1 ; i < t ; i++)
				{
					*(*(p + i) + j) = *(*(p + i + 1) + j);
				}
			}
			t--;
		}
		cout << sum << endl;
	}
	return 0;
}
//*******************************************
//*         ??????????????    *
//*         ??????                    *
//*         ???1200012764                *
//*         ???2012/11/25                *
//*******************************************

void matrix_down(int a[150][150], int large)        //??????
{
	int v, r;
	for (v = 0; v <= large - 1; v++)              //???????????large??
	{
		int minl;
		minl = a[v][0];
		for (r = 1; r <= large - 1; r++)         //????????
		{
     		if (a[v][r] <= minl)
			{
				minl = a[v][r];
			}
			if (a[v][r] == 0)
			{
				minl = 0;
				break;
			}
		}
	    for (r = 0; r <= large - 1; r++)      //??????????????minl
		{
		    a[v][r] = a[v][r] - minl;
			}
		}
		for (v = 0; v <= large - 1; v ++)          //????
		{
	     	int minr;
			minr = a[0][v];
			for (r = 1; r <= large - 1; r++)         //????????minr
			{
				if (a[r][v] <= minr)
				{
					minr = a[r][v];
				}
				if (a[r][v] == 0)
				{
					minr = 0;
					break;
				}
			}
			for (r = 0; r <= large - 1; r++)          //??????????????minr
			{
				a[r][v] = a[r][v] - minr;
			}
		}
}

void matrix_short(int a[150][150], int large)           //???????????large??
{
	int i, r;
	for (i = 1;i <= large - 2; i++)                //??????2???
	{
		for (r = 1; r <= large - 2; r++)
		{
			a[i][r] = a[i + 1][r + 1];
		}
		a[0][i] = a[0][i + 1];
		a[i][0] = a[i + 1][0];
	}
}

int main()
{
	int n, i, u, v, r, s;
	cin >> n;
	for (i = 1; i <= n; i++)           //??n????????
	{
		int a[150][150] = {0};
		int sum = 0;  
		for (u = 0; u <= n - 1; u++)           //?????
		{
			for (v = 0; v <= n - 1; v++)
			{
				cin >> a[u][v];
			}
		}
		for (u = n; u >= 2; u--)            //??????????????????????1
		{
			matrix_down(a, u);
			sum = a[1][1] + sum;
			matrix_short(a, u);
		}
		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
??
9
5 56 52 53 47 11 2 1 68
56 44 31 27 42 2 51 53 21
52 72 54 14 39 39 9 52 75
38 28 69 73 65 49 42 35 19
74 39 81 59 67 30 45 8 73
22 59 47 39 33 66 21 12 65
15 11 63 22 71 9 13 10 11
63 39 36 75 44 78 50 68 3
58 67 11 76 71 18 69 9 74

38 19 81 80 77 19 54 7 58
4 19 64 34 11 25 23 69 50
32 78 35 10 66 64 2 23 71
62 26 4 28 62 50 34 35 67
72 37 28 59 20 10 77 45 48
57 38 3 63 20 70 19 10 23
17 2 6 12 32 14 30 34 45
47 69 61 44 58 17 37 78 19
12 41 67 40 18 36 38 33 23
61 47 18 48 6 23 78 81 29
??
283
**************************************************************
????
????
??????????
?????a[1][1]??
????2???????????????
**************************************************************
programmer Qiu Hezi
version 1.0
creat date 2012.10.31 9:15
finish date
***************************************************************/
int main()
{
    int n;
    cin>>n;
    for (int i=0 ; i<n ; i++)
    {
        int a[n][n];
        //????
        for (int j=0 ; j<n ; j++)
        {
            for (int k=0 ; k<n ; k++)
            {
                cin>>a[j][k];
            }
        }
        int a11=0;//??a[1][1]???
        //??p-1?????????2??2??
        for (int p=n ; p>=2 ; p--)
        {
            //?????
            for (int j=0 ; j<p ; j++)
            {
                int min=a[j][0];
                for (int k=1 ; k<p ; k++)
                {
                    if (a[j][k]<min)
                    {
                        min=a[j][k];
                    }
                }
                for (int k=0 ; k<p ; k++)
                    a[j][k]-=min;
            }
            //?????
            for (int j=0 ; j<p ; j++)
            {
                int min=a[0][j];
                for (int k=1 ; k<p ; k++)
                {
                    if (a[k][j]<min)
                    {
                        min=a[k][j];
                    }
                }
                for (int k=0 ; k<p ; k++)
                    a[k][j]-=min;
            }
            a11+=a[1][1];
            //?????2?
            for (int j=0 ; j<p ; j++)
            {
                for (int k=1 ; k<p-1 ; k++)
                {
                    a[j][k]=a[j][k+1];
                }
            }
            //?????2?
            for (int j=0 ; j<p ; j++)
            {
                for (int k=1 ; k<p-1 ; k++)
                {
                    a[k][j]=a[k+1][j];
                }
            }
            //??
        }
        cout<<a11<<endl;
    }
    return 0;
}
int main()
{
	int n,cycle;
	cin>>n;
	for(cycle=0;cycle<n;cycle++)
	{
		int i,j,a[100][100]={0},w,sum=0;

		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++) cin>>a[i][j];
		}                                                     //in



		w=n;int min;

		while(w>1)
		{
			for(i=0;i<w;i++)
			{
					min=a[i][0];
				for(j=0;j<w;j++)
				{
					if(min>a[i][j]) min=a[i][j];
				}
				for(j=0;j<w;j++) a[i][j]-=min;
			}



			for(j=0;j<w;j++)
			{ 
				int count=0;
				
				for(i=0;i<w;i++)
				   {
				
					if(a[i][j]==0) {count++;break;}
				   }

				if(count==0)
				   {
                     min=a[0][j];
					for(i=0;i<w;i++)
					{
						if(a[i][j]<min) min=a[i][j];
					}
				 
					for(i=0;i<w;i++) a[i][j]-=min;
				     }

			}



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

		}
		cout<<sum<<endl;
		


		


	}
	return 0;

}