semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int a[101][101];
int main()
{
	int n,i,j,b,k,l,m,s;
	cin>>n;

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

		s=n, b=0;
		for(j=0;j<n-1;j++)
		{
			for(k=0;k<s;k++)
			{
				m=999999;
				for(l=0;l<s;l++)
					if(a[k][l]<m) m=a[k][l];

				for(l=0;l<s;l++)
					a[k][l]-=m;
			}
			for(k=0;k<s;k++)
			{
				m=999999;
				for(l=0;l<s;l++)
					if(a[l][k]<m) m=a[l][k];
				
				for(l=0;l<s;l++)
					a[l][k]-=m;
			}
			
		//	for(int x = 0; x < n; x++, printf("\n"))
			//	for(int y = 0; y < n; y++)
				//	printf("%d ", a[x][y]);

			b+=a[1][1];

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


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

	return 0;
}
void hang(int[] , int);
void xiaojie(int[], int);
int main()
{
	int n;
	cin >> n;
	int i, j, k, m;
	int min, sum;
	int a[101][101];
	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 (m = 0; m < n - 1; m++)
		{
			for (i = 0; i < n - m; i++)
				hang(a[i], n - m);
			for (j = 0; j < n - m; j++)
			{
				min = a[0][j];
				for (i = 0; i < n - m ;i++)
				{
					if (min > a[i][j])
						min = a[i][j];
				}
				for (i = 0; i < n - m; i++)
					a[i][j] = a[i][j] - min;
			}
			sum += a[1][1];
			for (i = 0; i < n - m; i++)
				xiaojie(a[i] , n - m);
			for (j = 0; j < n - 1 - m; j++)
			{
				for (i = 1; i < n - 1 - m; i++)
					a[i][j] = a[i + 1][j];
			}
		}
		cout << sum << endl;
	}
	return 0;
}
void hang(int a[], int leg)
{
	int min = a[0];
	int i;
	for (i = 0; i < leg; i++)
	{
		if (min > a[i])
			min = a[i];
	}
	for (i = 0; i < leg; i++)
		a[i] =  a[i] - min;
}
void xiaojie(int a[], int leg)
{
	int i;
	for (i = 1; i < leg; i++)
		a[i] = a[i + 1];
}
void zero(int a[100][100],int n){
    int min[100];
    for(int i=0;i<n;++i){
        min[i]=a[i][0];
        for(int j=0;j<n;++j)
            if(a[i][j]<min[i])
                min[i]=a[i][j];
        if(min[i]!=0)
            for(int j=0;j<n;++j)
                a[i][j]-=min[i];
    }
    for(int j=0;j<n;++j){
        min[j]=a[0][j];
        for(int i=0;i<n;++i)
            if(a[i][j]<min[j])
                min[j]=a[i][j];
        if(min[j]!=0)
            for(int i=0;i<n;++i)
                a[i][j]-=min[j];
    }
}
void subduction(int a[100][100],int n){
    for(int i=1;i<n-1;++i){
        a[0][i]=a[0][i+1];
        a[i][0]=a[i+1][0];
    }
    for(int i=1;i<n-1;++i)
        for(int j=1;j<n-1;++j)
            a[i][j]=a[i+1][j+1];
}
int main(){
    int m,n,s,a[100][100];
    cin>>n;
    for(int t=0;t<n;++t){
        s=0,m=n;
        for(int i=0;i<n;++i)
            for(int j=0;j<n;++j)
                cin>>a[i][j];
        while(m!=1){
            zero(a,m);
            s+=a[1][1];
            subduction(a,m--);
        }
        cout<<s<<endl;
    }
}
int juzhen[101][101][101]={0};
int guiling(int m,int n)
{
	int i,j,k=n,result=0,num[101][101]={0},min[101]={0};
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			num[i][j]=juzhen[m][i][j];
		}
	}
	while(k>1)
	{
		for(i=0;i<k;i++)
		{
			min[i]=10000;
			for(j=0;j<k;j++)
			{
				if(num[i][j]<=min[i])
					min[i]=num[i][j];
			}
		}
		for(i=0;i<k;i++)
		{
			for(j=0;j<k;j++)
			{
				num[i][j]=num[i][j]-min[i];
			}
		}
		for(j=0;j<k;j++)
		{
			min[j]=10000;
			for(i=0;i<k;i++)
			{
				if(num[i][j]<=min[j])
					min[j]=num[i][j];
			}
		}
		for(j=0;j<k;j++)
		{
			for(i=0;i<k;i++)
			{
				num[i][j]=num[i][j]-min[j];
			}
		}
		result=result+num[1][1];
		for(i=1;i<k-1;i++)
		{
			for(j=0;j<k;j++)
			{
				num[i][j]=num[i+1][j];
			}
		}
		for(j=1;j<k-1;j++)
		{
			for(i=0;i<k;i++)
			{
				num[i][j]=num[i][j+1];
			}
		}
		k--;
	}
	return result;
}
int main()
{
	int i,j,k,p;
	cin>>p;
	for(k=0;k<p;k++)
	{
		for(i=0;i<p;i++)
		{
			for(j=0;j<p;j++)
			{
				cin>>juzhen[k][i][j];
			}
		}
	}
	for(i=0;i<p;i++)
	{
		int answer=0;
		answer=guiling(i,p);
		cout<<answer<<endl;
	}
		return 0;
}
int main()
{
	int n,a[100][100],i,j,k,sum,min,m;
	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];
		m=n;
		while(m>1)
		{
			for(i=0;i<m;i++)
			{
				min=1000;
				for(j=0;j<m;j++)
				{
					if(a[i][j]<min)
						min=a[i][j];
				}
				for(j=0;j<m;j++)
					a[i][j]-=min;
			}
			for(j=0;j<m;j++)
			{
				min=1000;
				for(i=0;i<m;i++)
				{
					if(a[i][j]<min)
						min=a[i][j];
				}
				for(i=0;i<m;i++)
					a[i][j]-=min;
			}
			sum+=a[1][1];
			for(i=0;i<m;i++)
				for(j=2;j<m;j++)
					a[i][j-1]=a[i][j];
			for(j=0;j<m;j++)
				for(i=2;i<m;i++)
					a[i-1][j]=a[i][j];
			m--;
		}
		cout<<endl<<sum;
	}
	return 0;
}
int sum = 0;
void ope(int m, int a[][101])
{
	if (m == 1)
		return;
	else
	{
		int i, j, q, min = 100000;
		for (i = 0; i <= m - 1; i++)
		{
			for (j = 0; j <= m - 1; j++)
			{
				if (a[i][j] < min)
				{
					min = a[i][j];
				}
			}
			for (q = 0; q <= m - 1; q ++)
			{
				a[i][q] = a[i][q] - min;
			}
			min = 100000;
		}
		for (i = 0; i <= m - 1; i++)
		{
			for (j = 0; j <= m - 1; j++)
			{
				if (a[j][i] < min)
				{
					min = a[j][i];
				}
			}
			for (q = 0; q <= m - 1; q ++)
			{
				a[q][i] = a[q][i] - min;
			}
			min = 100000;
		}
		sum = sum + a[1][1];
		for (i = 2; i <= m - 1; i++)
		{
			for (j = 2; j <= m - 1; j++)
			{
				a[i - 1][j - 1] = a[i][j];
			}
			a[0][i - 1] = a[0][i];
			a[i - 1][0] = a[i][0];
		}
		ope(m - 1, a);
	}
}
int main()
{
	int n;
	cin >> n;
	int a[101][101];
	int i, j, k;
	for (k = 1; k <= n; k++)
	{
		for (i = 0; i <= n - 1; i++)
		{
			for (j = 0; j <= n - 1; j++)
			{
				cin >> a[i][j];
			}
		}
		sum = 0;
		ope(n, a);
		cout << sum << endl;
	}
	return 0;
}
int a[1001][1001], sum = 0;
void reduce(int a[][1001], int n)
{

	int i, j;
	for (i = 0; i < n; i++)                      //??????
	{
		int 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++)                     //??????
	{
		int min = a[0][j];
		for (i = 0; i < n; i++)
		{
			if (a[i][j] < min)
			{
				min = a[i][j];
			}
		}
		for (i = 0; i < n; i++)
		{
			a[i][j] -= min;
		}
	}
	sum += a[1][1];
	for (i = 0; i < n; i++)                             //?????
	{
		for (j = 1; j < n; j++)
		{
			a[i][j] = a[i][j + 1];
		}
	}
	for (j = 0; j < n; j++)
	{
		for (i = 1; i < n; i++)
		{
			a[i][j] = a[i + 1][j];
		}
	}
}
int main()
{
	int n, i, j, k;
	cin >> n;
	for (k = 0; k < n; k++)
	{
		sum = 0;
		memset(a, 0, sizeof(a));
		for (i = 0; i < n; i++)
		{
			for (j = 0; j < n; j++)
			{
				cin >> a[i][j];
			}
		}
		for (i = n; i>1; i--)
		{
			reduce(a, i);
		}
		cout << sum << endl;
	}
	return 0;
}
int main()
{
    int n,i,j,m,sum=0;
    cin>>n;
for (int p=1;p<=n;p++)
{
    sum=0;
    int a[n+1][n+1];
    for (i=0;i<n;i++)
      for (j=0;j<n;j++)
         cin>>a[i][j];
    a[n][n]=a[0][0];
    for (i=1;i<n;i++)
        a[i][n]=a[i][0];
    for (j=1;j<n;j++)
        a[n][j]=a[0][j];
   for (int q=1;q<n;q++)
  {
    for (i=q;i<=n;i++)
       {
           m=a[i][q];
           for (j=q+1;j<=n;j++)
           {
               if (m>a[i][j])
                    m=a[i][j];
           }
           
           for (j=q;j<=n;j++)
               a[i][j]-=m;
       }
    for (j=q;j<=n;j++)
        {
             m=a[q][j];
             for (i=q+1;i<=n;i++)
             {
               if (m>a[i][j])
                    m=a[i][j];
             }
             
             for (i=q;i<=n;i++)
                a[i][j]-=m;
        } 
    sum+=a[q][q];
  }
    cout<<sum<<endl;
}
cin>>i;
return 0;
    
}
int sum;								//??????
int func(int a[100][100],int n);		//????
int main()
{
	int n,j,k,i;						//????????????
	int a[100][100];
	cin>>n;
	for(i=0;i<n;i++)
	{
		memset(a,0,sizeof(a));			//?a???????0
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>a[j][k];			//??a
		sum=0;							//???sum?0
		cout<<func(a,n)<<endl;
	}
	return 0;
}
int func(int a[100][100],int n)
{
	int i,j,min,b[100][100];			//????????????????
	if(n<=1)
		return sum;						//????1?????????
	else								//??
	{
		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]=a[i][j]-min;	//????????
		}
		for(i=0;i<n;i++)
		{
			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]=a[j][i]-min;	//?????????
		}
		sum+=a[1][1];					//??????a[1][1]??
		for(i=2;i<n;i++)
		{
			for(j=0;j<n-1;j++)
				b[i-1][j]=a[i][j+1];	//???-1
			for(j=0;j<n-1;j++)
				b[j][i-1]=a[j+1][i];	//???-1
		}
		for(j=1;j<n-1;j++)
			b[0][j]=a[0][j+1];
		for(j=1;j<n-1;j++)
			b[j][0]=a[j+1][0];
		b[0][0]=a[0][0];				//??a[0][0]
		func(b,n-1);					//?????
	}
}
void main()
{
  int sum=0,s[100][100],i,t,j,m,n,k,min;
  scanf("%d",&n);
  for (i=1;i<=n;i++)
  {
	  for (j=0;j<n;j++)
		  for (k=0;k<n;k++)
			  scanf("%d",&s[j][k]);
	  sum=0;
	  for (j=1;j<n;j++)
	  {
		  for (k=0;k<n;k++)
		  {
			  if (k==0||k>=j)
			  {
				      min=s[k][0];
					  for (t=0;t<n;t++)
					  {
						  if ((t==0||t>=j)&&s[k][t]<min) min=s[k][t];
					  }
					  for (t=0;t<n;t++)
					  {
						  if (t==0||t>=j) s[k][t]-=min;
					  }
			  }
		  }



          for (k=0;k<n;k++)
		  {
			  if (k==0||k>=j)
			  {
				      min=s[0][k];
					  for (t=0;t<n;t++)
					  {
						  if ((t==0||t>=j)&&s[t][k]<min) min=s[t][k];
					  }
					  for (t=0;t<n;t++)
					  {
						  if (t==0||t>=j) s[t][k]-=min;
					  }
			  }
		  }
          sum+=s[j][j];
	  }
	  printf("%d\n",sum);
  }
  
}
int main()
{
int n;
cin>>n;
int a[100][100][2];
for (int p=1;p<=n;p++)
{
	int sum=0;
	for (int i=0;i<=n-1;i++)
	{
		for (int j=0;j<=n-1;j++)
		{
			cin>>a[i][j][1];
			a[i][j][0]=1;
		}

	}
	for (int q=1;q<=n-1;q++)
	{
		for (int i=0;i<=n-1;i++)
		{
			int min = a[i][0][1];
			for (int j=0;j<=n-1;j++)
			{
				if (a[i][j][0]==0)continue;
				if (a[i][j][1]<min)
				{
					min =a[i][j][1];
				}
			}
			for (int j=0;j<=n-1;j++)
			{
				if (a[i][j][0]==0)continue;
				a[i][j][1]-=min;
			}
		}
		for (int i=0;i<=n-1;i++)
		{
			int min=a[0][i][1];
			for (int j=0;j<=n-1;j++)
			{
				if (a[j][i][0]==0)continue;
				if (a[j][i][1]<min)
				{
					min =a[j][i][1];
				}
			}
			for (int j=0;j<=n-1;j++)
			{
				if (a[j][i][0]==0)continue;
				a[j][i][1]-=min;
			}
		}
		sum+=a[q][q][1];
		for (int i=0;i<=n-1;i++)
		{
			a[q][i][0]=0;
			a[i][q][0]=0;
		}
	}
	cout<<sum<<endl;
}
}
int cal(int matrix[][120],int n)
{
	 if (n==1) return(0);
	 int i,j,min,s;
	 for (i=0;i<n;i++)
	 {
		 min=32767;
		 for (j=0;j<n;j++)
		 {
			 if (matrix[i][j]<min) min=matrix[i][j];
		 }
		 for (j=0;j<n;j++)
			 matrix[i][j]=matrix[i][j]-min;
	 }
	 for (i=0;i<n;i++)
	 {
		 min=32767;
		 for (j=0;j<n;j++)
		 {
			 if (matrix[j][i]<min) min=matrix[j][i];
		 }
		 for (j=0;j<n;j++)
			 matrix[j][i]=matrix[j][i]-min;
	 }
	 s=matrix[1][1];
	 for (i=1;i<n-1;i++)
		 for (j=0;j<n;j++)
			 matrix[i][j]=matrix[i+1][j];
	 for (i=0;i<n-1;i++)
		 for (j=1;j<n-1;j++)
			 matrix[i][j]=matrix[i][j+1];

	 return(s+cal(matrix,n-1));
}

int main()
{
	 int n,i,j,k;
	 int a[120][120];
	 scanf("%d",&n);
	 for (i=1;i<=n;i++)
	 {
		for (j=0;j<n;j++)
			for (k=0;k<n;k++)
				scanf("%d",&a[j][k]);
		printf("%d\n",cal(a,n));
	 }
	 return(0);
}
int main()
{
	int n,a[100][100],i,j,k,l,min,sum;
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				cin>>a[j][k];
			}
		}
		sum=0;
		for(j=n;j>1;j--)
		{
			for(k=0;k<j;k++)
			{
				min=a[k][0];
				for(l=0;l<j;l++)
				{
					if(min>a[k][l])
					{
						min=a[k][l];
					}
				}
				for(l=0;l<j;l++)
				{
					a[k][l]=a[k][l]-min;
				}
			}
			for(k=0;k<j;k++)
			{
				min=a[0][k];
				for(l=0;l<j;l++)
				{
					if(min>a[l][k])
					{
						min=a[l][k];
					}
				}
				for(l=0;l<j;l++)
				{
					a[l][k]=a[l][k]-min;
				}
			}
			sum=sum+a[1][1];
			for(k=1;k<j-1;k++)
			{
				a[k][0]=a[k+1][0];
				a[0][k]=a[0][k+1];
			}
			for(k=1;k<j-1;k++)
			{
				for(l=1;l<j-1;l++)
				{
					a[k][l]=a[k+1][l+1];
				}
			}
		}
		cout<<sum<<'\n';
	}
	return 0;
}
int a1[100][100];
int xiao( int n )
{
	int sum=0;
	if(n==2)
		{
		for(int i=0; i<n; i++)
			{
				int min=1000;
				for(int j=0; j<n; j++)
				{
					if(min>a1[i][j])
						min=a1[i][j];
				}
				for(int j=0; j<n; j++)
					a1[i][j]=a1[i][j]-min;
			}//cout<<a1[1][1]<<endl<<endl;
			for(int j=0; j<n; j++)
			{
				int min=1000;
				for(int i=0; i<n; i++)
				{
					if(min>a1[i][j])
						min=a1[i][j];
				}
				for(int i=0; i<n; i++)
					a1[i][j]=a1[i][j]-min;
			}




		return a1[1][1];
		}



	for(int i=0; i<n; i++)
	{
		int min=1000;
		for(int j=0; j<n; j++)
		{
			if(min>a1[i][j])
				min=a1[i][j];
		}
		for(int j=0; j<n; j++)
			a1[i][j]=a1[i][j]-min;
	}
	for(int j=0; j<n; j++)
	{
		int min=1000;
		for(int i=0; i<n; i++)
		{
			if(min>a1[i][j])
				min=a1[i][j];
		}
		for(int i=0; i<n; i++)
			a1[i][j]=a1[i][j]-min;
	}
	//cout<<a1[1][1]<<endl;
	//cout<<endl;
	sum+=a1[1][1];
//cout<<sum<<endl<<endl;
	for(int i=0; i<n; i++)
		for(int j=0; j<n; j++)
		{
			if(j==1) continue;
			if(j<1) a1[i][j]=a1[i][j];
			else a1[i][j-1]=a1[i][j];
		}
	for(int j=0; j<n-1; j++)
		for(int i=0; i<n; i++)
		{
			if(i==1) continue;
			if(i<1) a1[i][j]=a1[i][j];
			else a1[i-1][j]=a1[i][j];
		}
	sum+=xiao(n-1);
	return sum;
}


int main()
{
	int n;
	cin>>n;

	for(int k=0; k<n; k++)
	{


	for(int i=0; i<n; i++)
		for(int j=0; j<n; j++)
			cin>>a1[i][j];
	cout<<xiao( n )<<endl;

	}


	return 0;
}
//**********************************************************
//*  ?????2.cpp                                       *
//*  ??????1200012906                                *
//*  ???2012?11?19?                                  *
//*  ???????????                                *
//**********************************************************

int sum, n;     //???????a[1][1]??
void r2z(int a[][100], int n);  //?????????
void sub(int a[][100], int n);   //?????????

int main()
{
	int i, row, col, a[100][100] = {0};
	cin >> n;
	int m = n;  //?m???n???
	for (i = 0; i < m; i++)
	{
		sum = 0;
		n = m;   //?????????n???
		for (row = 0; row < m; row++)
			for (col = 0; col < m; col++)
			{
				cin >> a[row][col];  //??????
			}
		r2z(a, n);   //??????sum??
		cout << sum << endl; 
	}
	return 0;
}

void r2z(int a[][100], int n)
{
	int i, j, min[100];
	for(i = 0; i < n; i++)
	{
		min[i] = 10000;    //?????????
		for (j = 0; j < n; j++)
		{
			if (a[i][j] < min[i])
				min[i] = a[i][j];    //???????
		}
		for (j = 0; j < n; j++)
		{
			a[i][j] -= min[i];   //???????????
		}
	}
	for (j = 0; j < n; j++)
	{
		min[j] = 10000;
		for (i = 0; i < n; i++)
		{
			if (a[i][j] < min[j])
				min[j] = a[i][j];  //???????
		}
		for (i = 0; i < n; i++)
		{
			a[i][j] -= min[j];    //???????????
		}
	}
	sum += a[1][1];  //??a[1][1]??
	sub(a, n);      //???????
}

void sub(int a[][100], int n)
{
	int i, j;
	for(i = 1; i < n - 1; i++)
	{
		a[0][i] = a[0][i + 1];
		a[i][0] = a[i + 1][0];
		for (j = 1; j < n - 1; j++)
			a[i][j] = a[i + 1][j + 1];
	}
	n--;   //?????1
	if (n > 1)
		r2z(a, n);   //???1*1???
}
int main()
{
	int p[100][100];
	int n,min,sum=0;
	cin>>n;
	for(int a=0;a<n;a++)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
			{
				cin>>*(*(p+i)+j);
			}
		for(int k=n;k>1;k--)
		{
			for(int i=0;i<k;i++)
			{
				min=**(p+i);
				for(int j=1;j<k;j++)
				{
					if(*(*(p+i)+j)<min)
					{
						min=*(*(p+i)+j);
					}
				}
				for(int j=0;j<k;j++)
					*(*(p+i)+j)=*(*(p+i)+j)-min;
			}
			for(int j=0;j<k;j++)
			{
				min=*(*p+j);
				for(int i=1;i<k;i++)
				{
					if(*(*(p+i)+j)<min)
					{
						min=*(*(p+i)+j);
					}
				}
				for(int i=0;i<k;i++)
					*(*(p+i)+j)=*(*(p+i)+j)-min;
			}
			sum=sum+*(*(p+1)+1);
			for(int i=1;i<k;i++)
				for(int j=0;j<k;j++)
				{
					*(*(p+i)+j)=*(*(p+i+1)+j);
				}
			for(int j=1;j<k;j++)
				for(int i=0;i<k;i++)
				{
					*(*(p+i)+j)=*(*(p+i)+j+1);
				}
		}
		cout<<sum<<endl;
		sum=0;
	}
	return 0;
}
int main()
{
	int n;
	cin>>n;
	for (int k=0;k<n;k++)
	{
		int a[100][100];
		for (int i=0;i<n;i++)
			for (int j=0;j<n;j++)
				cin>>a[i][j];
		int ans=0;
		for (int nn=n;nn>1;nn--)
		{
			for (int i=0;i<nn;i++)
			{
				int min=50000;
				for (int j=0;j<nn;j++)
					if (min>a[i][j]) min=a[i][j];
				for (int j=0;j<nn;j++)
					a[i][j]-=min;
			}
			for (int i=0;i<nn;i++)
			{
				int min=50000;
				for (int j=0;j<nn;j++)
					if (min>a[j][i]) min=a[j][i];
				for (int j=0;j<nn;j++)
					a[j][i]-=min;
			}
			ans+=a[1][1];
			for (int i=1;i<nn;i++)
				for (int j=0;j<nn;j++)
					a[i][j]=a[i+1][j];
			for (int j=1;j<nn;j++)
				for (int i=0;i<nn;i++)
					a[i][j]=a[i][j+1];
		}
		cout<<ans<<endl;
	}
	return 0;
}
int a[120][120];
int math(int);
int n;
int main()
{ int sum,b,c;
cin>>n;
c=n;
while(c--){for(int i=0;i<n;i++)
	           for(int j=0;j<n;j++)cin>>a[i][j];
             sum=math(n);

             b=n;
             while(b--){for(int i=2;i<b+1;i++)a[0][i-1]=a[0][i];
                for(int i=2;i<b+1;i++)a[i-1][0]=a[i][0];
                for(int i=2;i<b+1;i++)
                	for(int j=2;j<b+1;j++)a[i-1][j-1]=a[i][j];
                if(b==1)break;
                sum=math(b)+sum;

             }
                cout<<sum<<endl;

             }

return 0;
}
int math(int x)
{int min[x];
for(int i=0;i<x;i++)min[i]=a[i][0];

	for(int i=0;i<x;i++)
		for(int j=0;j<x;j++){if(a[i][j]<min[i])min[i]=a[i][j];}

	for(int i=0;i<x;i++)
		for(int j=0;j<x;j++)a[i][j]=a[i][j]-min[i];

int minl[x];
for(int i=0;i<x;i++)minl[i]=a[0][i];
for(int i=0;i<x;i++)
	for(int j=0;j<x;j++){if(a[j][i]<minl[i])minl[i]=a[j][i];}

for(int i=0;i<x;i++)
	for(int j=0;j<x;j++)a[i][j]=a[i][j]-minl[j];

return a[1][1];
}
int n,mat[101][101],tp[101][101],sum=0;
void cut(int x)
{
	int min;
	if (x==n-1) return;
	else
	{
		for(int i=0;i<n-x;i++)
		{
			min=mat[i][0];
			for(int j=0;j<n-x;j++)
			{
				if (mat[i][j]<=min)
				{
					min=mat[i][j];
				}
			}
			for(int j=0;j<n-x;j++) mat[i][j]-=min;
		}
		for(int i=0;i<n-x;i++)
		{
			min=mat[0][i];
			for(int j=0;j<n-x;j++)
			{
				if (mat[j][i]<=min)
				{
					min=mat[j][i];
				}
			}
			for(int j=0;j<n-x;j++) mat[j][i]-=min;
		}
		sum+=mat[1][1];
		//for(int i=0;i<n-x;i++){
		//	for(int j=0;j<n-x;j++){
			//	cout<<mat[i][j]<<" ";}
				//cout<<endl;}
		for(int i=0;i<n-x;i++) mat[1][i]=-1;
		for(int i=0;i<n-x;i++) mat[i][1]=-1;
		tp[0][0]=mat[0][0];
		for(int i=2;i<n-x;i++) tp[0][i-1]=mat[0][i];
		for(int i=2;i<n-x;i++){
			tp[i-1][0]=mat[i][0];
			for(int j=2;j<n-x;j++) tp[i-1][j-1]=mat[i][j];}
		//for(int i=0;i<n-x;i++){
		//	for(int j=0;j<n-x;j++){
			//	cout<<tp[i][j]<<" ";}
				//cout<<endl;}
		for(int i=0;i<n-x-1;i++){
			for(int j=0;j<n-x-1;j++){
				mat[i][j]=tp[i][j];}}
		//for(int i=0;i<n-x-1;i++){
		//	for(int j=0;j<n-x-1;j++){
			//	cout<<mat[i][j]<<" ";}
				//cout<<endl;}
		cut(x+1);}
}
void ope()
{
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>mat[i][j];}}
	sum=0;
	cut(0);
	cout<<sum<<endl;
}
int main()
{
	cin>>n;
	for(int i=0;i<n;i++) ope();
	return 0;
}
int n=0;int juzhen[101][101]={0},sum=0,hang=0;
void hangxiao();
void liexiao();
void xiaojian();
void hangxiao(){
	int i,j,xiao=1000;
	for(i=0;i<hang;i++){
		for(j=0;j<hang;j++){
			if(xiao>juzhen[i][j]){
				xiao=juzhen[i][j];
			}
		}
		for(j=0;j<hang;j++){
			juzhen[i][j]-=xiao;
		}
		xiao=1000;
	}
}
void liexiao(){
	int i,j,xiao=1000;
	for(j=0;j<hang;j++){
		for(i=0;i<hang;i++){
			if(xiao>juzhen[i][j]){
				xiao=juzhen[i][j];
			}
		}
		for(i=0;i<hang;i++){
			juzhen[i][j]-=xiao;
		}
		xiao=1000;
	}
}
void xiaojian() {
	int i,j,xiao=0;
	for(i=2;i<hang;i++){
		for(j=0;j<hang;j++){
			juzhen[i-1][j]=juzhen[i][j];
		}
	}
	for(j=2;j<hang;j++){
		for(i=0;i<hang;i++){
			juzhen[i][j-1]=juzhen[i][j];
		}
	}
}

int main(){
	int a ;
	cin >> a;
	n=a;
	
	while(a>0){
		memset(juzhen,0,sizeof(juzhen));
		sum=0;
		int b,c,d,e,i,j;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin >> juzhen[i][j];
		hang=n;
		while(hang>1){
			hangxiao();
			liexiao();
			sum+=juzhen[1][1];
			xiaojian();
			hang--;
		}
		cout <<sum <<endl;
		a--;
	}
	return 0;
}
int main()
{
	int n,i,j,p,t,min,sum=0;
	int a[100][100];
	scanf("%d",&n);
	for(p=0;p<n;p++)
	{	
		sum=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		for(t=0;t<n-1;t++)
		{
			for(i=0;i<n-t;i++)
			{	
				min=a[i][0];
				for(j=0;j<n-t;j++)
				{
					if(a[i][j]<min)
						min=a[i][j];
				}
				for(j=0;j<n-t;j++)
					a[i][j]=a[i][j]-min;
			}
			for(j=0;j<n-t;j++)
			{	
				min=a[0][j];
				for(i=0;i<n-t;i++)
				{
					if(a[i][j]<min)
						min=a[i][j];
				}
				for(i=0;i<n-t;i++)
					a[i][j]=a[i][j]-min;
			}
			
			sum+=a[1][1];
			for(i=0;i<n-t;i++)
				for(j=1;j<n-t;j++)
					a[i][j]=a[i][j+1];
			for(j=0;j<n-t;j++)
				for(i=1;i<n-t;i++)
					a[i][j]=a[i+1][j];
		}
		printf("%d\n",sum);
	}
	return 0;
}
int cut(int a[100][100], int);
int main()
{
	int n, a[100][100], i, j, k;
	cin >> n;
	for (k = 0; k < n; k++)
	{
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				cin >> a[i][j];
		cout << cut(a, n) << endl;
	}
	return 0;
}
int cut(int a[100][100], int n)
{
	int i, j, min, count;
	for (i = 0; i < n; i++)
	{
		min = a[i][0];
		for (j = 1; j < n; j++)
			min = (min > a[i][j])?a[i][j]:min;
		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++)
			min = (min > a[j][i])?a[j][i]:min;
		for (j = 0; j < n; j++)
			a[j][i] = a[j][i] - min;
	}
	count = a[1][1];
	if (n == 2)
		return count;
	for (i = 1; i < n - 1; i++)
	{
		a[0][i] = a[0][i+1];
		a[i][0] = a[i+1][0];
	}
	for (i = 2; i < n; i++)
	{
		for (j = 2; j < n; j++)
			a[i-1][j-1] = a[i][j];
	}
	return (cut(a, n - 1) + count);
}
int main()
{
 int n,i,j,k,l,s,m,a[10000];
 int *p,*p1,*p2,*p3;
 scanf("%d",&n);
 p=a;
 for(l=0;l<n;l++)
 {
  for(i=0;i<n;i++)
  {p1=p+100*i;
   for(j=0;j<n;j++)
   {p2=p1+j;
    scanf("%d",p2);}}
  s=0;
  for(k=0;k<n-1;k++)
  {for(i=0;i<n;i++)
   {p1=p+i*100;
    m=*p1;
    for(j=0;j<n;j++)
    {p2=p1+j;
     if(j>k)
      if(*p2<m) m=*p2;}
    for(j=0;j<n;j++)
    {p2=p1+j;
     *p2=*p2-m;}}
   for(i=0;i<n;i++)
   {p1=p+i;
    m=*p1;
    for(j=0;j<n;j++)
    {p2=p1+j*100;
     if(j>k)
      if(*p2<m) m=*p2;}
    for(j=0;j<n;j++)
    {p2=p1+j*100;
     *p2=*p2-m;}}
   s=s+*(p+101*(k+1));}
  printf("%d\n",s);}
   

   
}