semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int f(int a, int b)
{
    if(a>=b)
    {
        return b;
    }
    else
    {
        return a;
    }
}
main()
{
    int n,i,j,t,sum,x,y,r;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        int a[100][100]={0};
        int b[100][100]={0};
        sum=0;
        for(j=0;j<n;j++)
        {
            for(t=0;t<n;t++)
            {
                scanf("%d",&a[j][t]);
                b[j][t]=a[j][t];
            }
        }
        for(r=0;r<n-1;r++)
        {
            for(j=0;j<n;j++)
            {
                x=0;
                for(t=0;t<n-1;t++)
                {
                    a[j][t+1]=f(a[j][t],a[j][t+1]);
                }
                x=a[j][t];
                for(t=0;t<n;t++)
                {
                    b[j][t]=b[j][t]-x;
                    a[j][t]=b[j][t];
                }
            }
            for(j=0;j<n;j++)
            {
                y=0;
                for(t=0;t<n-1;t++)
                {
                    a[t+1][j]=f(a[t][j],a[t+1][j]);
                }
                y=a[t][j];
                for(t=0;t<n;t++)
                {
                b[t][j]=b[t][j]-y;
                a[t][j]=b[t][j];
                }
            }
            sum=sum+a[1][1];
            for(j=0;j<n;j++)
            {
                for(t=1;t<n-1;t++)
                {
                   a[t][j]=a[t+1][j];
                   b[t][j]=a[t][j];
                }
            }
            for(j=0;j<n;j++)
            {
                for(t=1;t<n-1;t++)
                {
                   a[j][t]=a[j][t+1];
                   b[j][t]=a[j][t];
                }
            }
        }
        printf("%d\n",sum);
    }
}
int main()
{
	int n,a[101][101],i,j,t;
	cin>>n;
	for(t=1;t<=n;t++)
	{
		int ti=2,sum=0;
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				cin>>a[i][j];
			}
		}
		for(ti=2;ti<=n;ti++)
		{
			int mins[101],minl[101];
			for(int p=1;p<=n;p++)
			{
				mins[p]=10000;
				minl[p]=10000;
			}
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					if(a[i][j]>=0&&a[i][j]<=mins[i])
						mins[i]=a[i][j];
				}
					for(j=1;j<=n;j++)
						a[i][j]=a[i][j]-mins[i];
			}
            for(j=1;j<=n;j++)
			{
				for(i=1;i<=n;i++)
				{
					if(a[i][j]>=0&&a[i][j]<=minl[j])
						minl[j]=a[i][j];
				}
	
					for(i=1;i<=n;i++)
						a[i][j]=a[i][j]-minl[j];
			}
			sum=sum+a[ti][ti];
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
				{
					if(i==ti||j==ti)
						a[i][j]=-1;
				}
			}
		}
		cout<<sum<<endl;
	}
	
	return 0;
}
int matrixHor[103][103];
int matrixVer[103][103];

int min(int line[],int n){
    int mini=100000;
    for (int i=1; i<=n; i++) {
        if (line[i]<mini) {
            mini=line[i];
        }
    }
    return mini;
    
}
int main(){
    int n,N;
    cin>>n;
    
    for (int i=1; i<=n; i++) {
        int sum=0;
        N=n;
        for (int j=1; j<=N; j++) {
            for (int k=1; k<=N; k++) {
                cin>>matrixVer[j][k];
                matrixHor[k][j]=matrixVer[j][k];
            }
        }
        for (int h=1; h<n; h++) {
            
            for (int j=1; j<=N; j++) {
                int minim=min(matrixVer[j],N);
                for (int k=1; k<=N; k++) {
                    matrixVer[j][k]=matrixVer[j][k]-minim;
                    matrixHor[k][j]=matrixVer[j][k];
                }
            }
            
            
            for (int j=1; j<=N; j++) {
                int minim=min(matrixHor[j],N);
                for (int k=1; k<=N; k++) {
                    matrixHor[j][k]=matrixHor[j][k]-minim;
                    matrixVer[k][j]=matrixHor[j][k];
                }
            }
            sum=sum+matrixVer[2][2];
            N=N-1;
            for (int j=2; j<=N; j++) {
                for (int k=2; k<=N; k++) {
                    matrixVer[j][k]=matrixVer[j+1][k+1];
                    matrixHor[j][k]=matrixHor[j+1][k+1];
                    
                }
            }
            for (int j=2; j<=N; j++) {
                matrixHor[1][j]=matrixHor[1][j+1];
                matrixVer[j][1]=matrixHor[1][j];
                matrixVer[1][j]=matrixVer[1][j+1];
                matrixHor[j][1]=matrixVer[1][j];
            }
        }
        cout<<sum<<endl;
        
        
    }
}
int a[100][100];
int cut(int t)
{
	int s,i,j;
	int sum;
	for(i=0;i<t;i++)
	{
		s=9999;
		for(j=0;j<t;j++)
		{
			if(a[i][j]<s)   s=a[i][j]; 
		}
		for(j=0;j<t;j++)   a[i][j]=a[i][j]-s;
	}
	for(i=0;i<t;i++)
	{
		s=9999;
		for(j=0;j<t;j++)
		{
			if(a[j][i]<s)  s=a[j][i];
		}
		for(j=0;j<t;j++)  a[j][i]=a[j][i]-s;
	}
	t--;
	if(t==1) return a[1][1];
	else sum=a[1][1];
	for(i=0;i<t+1;i++)
		for(j=0;j<t+1;j++)
		{
			if(i==0&&j==0)   continue;
			else if(i==1||j==1)   continue;
			else if(i==0)  a[i][j-1]=a[i][j];
			else if(j==0)   a[i-1][j]=a[i][j];
			else a[i-1][j-1]=a[i][j];
		}
	sum=sum+cut(t);
	return sum;
}
int main ()
{
	int i,j,k,n;
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				a[j][k]=0;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>a[j][k];
		cout<<cut(n)<<endl;
	}
	return 0;
}
int main()
{
	int n,a[100][100],N,i,j,k,l,min,sum=0;
	cin>>N;//N???
	for(i=0;i<N;i++)//N???
	{
		for(j=0;j<N;j++)
			for(k=0;k<N;k++)
				cin>>a[j][k];//????
			n=N;
			for(l=0;l<N-1;l++)
		{
			for(j=0;j<n;j++)
			{
				min=a[j][0];
				for(k=0;k<n;k++)
				{
					if (a[j][k]<min)
						min=a[j][k];
				}
				for(k=0;k<n;k++)
					a[j][k]=a[j][k]-min;
			}//????
			for(k=0;k<n;k++)
			{
				min=a[0][k];
				for(j=0;j<n;j++)
				{
					if (a[j][k]<min)
						min=a[j][k];
				}
				for(j=0;j<n;j++)
					a[j][k]=a[j][k]-min;
			}//????
			sum=sum+a[1][1];//??
			for(k=1;k<n-1;k++)
				for(j=0;j<n;j++)
					a[j][k]=a[j][k+1];//?????
				for(j=1;j<n-1;j++)
					for(k=0;k<n-1;k++)
						a[j][k]=a[j+1][k];//?????
					n=n-1;//????????
			}
			cout<<sum<<endl;//??
			sum=0;

	}
	return 0;
}
int i,j,k,l,tot=0;
int sum(int a[][101],int n)
{
	if(n==1)
	{
		return tot;
	}
	for(i=0;i<=n-1;i++)
	{
		l=a[i][0];
		for(j=0;j<=n-2;j++)
		{
			l=min(l,a[i][j+1]);
		}
		for(j=0;j<=n-1;j++)
		{
			a[i][j]-=l;
		}
	}
	for(j=0;j<=n-1;j++)
	{
		l=a[0][j];
		for(i=0;i<=n-2;i++)
		{
			l=min(l,a[i+1][j]);
		}
		for(i=0;i<=n-1;i++)
		{
			a[i][j]-=l;
		}
	}
	tot+=a[1][1];
	for(i=1;i<=n-2;i++)
	{
		for(j=1;j<=n-2;j++)
		{
			a[i][j]=a[i+1][j+1];
		}
	}
	for(i=1;i<=n-2;i++)
	{
		a[i][0]=a[i+1][0];
	}
	for(j=1;j<=n-2;j++)
	{
		a[0][j]=a[0][j+1];
	}
	n--;
	sum(a,n);
}
int main()
{
	int a[101][101];
	int n;
	cin >> n;
	for(k=1;k<=n;k++)
	{
		for(i=0;i<=n-1;i++)
		{
			for(j=0;j<=n-1;j++)
			{
				cin >> a[i][j] ;
			}
		}
		cout << sum(a,n) << endl;
		tot = 0;
	}
	return 0;
}
int  jz(int a[100][100],int k)//??????, ?????a[][],???k 
{
	int sum=0,min,i,j,b,judge=0;
	for(b=k;b>1;b--)//???b???????????? 
	{
		for(i=0;i<b;i++)
		{
			min=a[i][0];
			for(j=1;j<b;j++)
			{
				if(a[i][j]<min)
				{
					min=a[i][j];//????????? 
				}
			}
			for(j=0;j<b;j++)
			{
				a[i][j]=a[i][j]-min;//?????? 
			}
		}
		for(i=0;i<b;i++)
		{
			judge=0;
			for(j=1;j<b;j++)
			{
				if(a[j][i]==0)//????0?,???? 
				{
					judge=1;
					break;
				}
			}
			if(judge==0)
			{
				min=a[0][i];
				for(j=1;j<b;j++)
				{
					if(a[j][i]<min)
					{
						min=a[j][i];
					}
				}
				for(j=0;j<b;j++)
				{
					a[j][i]=a[j][i]-min;
				}
			}
		}
		sum=sum+a[1][1];//??a[1][1] 
		for(i=0;i<b;i++)
		{
			for(j=2;j<b;j++)
			{
				a[i][j-1]=a[i][j];//? 2????????? 
			}
		}
		for(i=0;i<b;i++)
		{
			for(j=2;j<b;j++)
			{
				a[j-1][i]=a[j][i];//?2????????? 
			}
		}
	}
	return sum;
}
int main()
{
	int n,i,j,k,num[100][100],ans[100];
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				cin>>num[j][k];//????? 
			}
		}
		ans[i]=jz(num,n);//???? 
	}
	for(i=0;i<n;i++)
		cout<<ans[i]<<endl;
	return 0;
}
/*
 * icecream.cpp
 *
 *  Created on: 2011-9-20
 *      Author: 110012959
 */
int main()
{
	int n,i,j,k,sum,min,m;
	int a[100][100];
	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(m=n;m>1;m--)
		{
			for(i=0;i<m;i++)
			{
				min=a[i][0];
				for(j=1;j<m;j++)//???i????
				{
					if(a[i][j]<min) min=a[i][j];
				}
				for(j=0;j<m;j++)//???????
					a[i][j]=a[i][j]-min;
			}
			for(j=0;j<m;j++)
			{
				min=a[0][j];
				for(i=1;i<m;i++)//???j????
				{
					if(a[i][j]<min) min=a[i][j];
				}
				for(i=0;i<m;i++)//???????
					a[i][j]=a[i][j]-min;
			}
			sum=sum+a[1][1];//sum????a[1][1]??
			for(i=0;i<m;i++)//?????
				for(j=1;j<m-1;j++)
					a[i][j]=a[i][j+1];
			for(j=0;j<m-1;j++)//?????
				for(i=1;i<m-1;i++)
					a[i][j]=a[i+1][j];
		}
                cout<<sum<<endl;
	}
	return 0;
}
//============================================================================
// Name        : test.cpp
// Author      : Yize Xie
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

void step1(int a[100][100],int n)//???????????????????????
{
	int hmin,lmin;
	for(int i=0;i<n;i++)
	{
		hmin=a[i][0];
		for(int j=0;j<n;j++)
		{
			if(a[i][j]<hmin)
				hmin=a[i][j];
		}
		for(int j=0;j<n;j++)
		{
			a[i][j]-=hmin;
		}
	}
	for(int i=0;i<n;i++)
	{
		lmin=a[0][i];
		for(int j=0;j<n;j++)
		{
			if(a[j][i]<lmin)
				lmin=a[j][i];
		}
		for(int j=0;j<n;j++)
		{
			a[j][i]-=lmin;
		}
	}
}
void step2(int a[100][100],int n)
{
	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 n;
	cin >> n;
	int nn=n;
	while(nn--)
	{
		int tn=n;
		int a[100][100];
		for(int i=0;i<tn;i++)
			for(int j=0;j<tn;j++)
				cin >> a[i][j];
		int sum=0;
		while(tn>=2)
		{
			step1(a,tn);
			sum+=a[1][1];
			step2(a,tn);
			tn--;
		}
		cout << sum << endl;
	}
	return 0;
}
int a[100][100];
void minu ( int n );
void shrink ( int n );
int main()
{
    int n, i, j, k, sum, x;
    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];
			}
		}
		for ( x = n; x > 1; x-- )
		{
			minu ( x );
			sum += a[1][1];
			shrink ( x );
		}
        cout << sum << endl;
    }
    return 0;
}
void minu ( int n )
{
	int i, j, min;
    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 ( i = 0; i < n; i++ )
    {
        min = a[0][i];
        for ( j = 1; j < n; j++ )
		{
            if ( a[j][i] < min )
			{
                min = a[j][i];
			}
		}
        for ( j = 0; j < n; j++ )
		{
            a[j][i] -= min;
		}
    }
}
void shrink ( 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];
    }
}
int n,m,mymin; //n??????n*n,????sum
int a[110][110];//??a
void delmin(int x, int y, int dx, int dy) {
	if (x == m || y == m) return;
	if (a[x][y] < mymin)  mymin = a[x][y];
	delmin(x + dx, y + dy, dx, dy);
	a[x][y] -= mymin;
}
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];
}
int main() {
	int i, j, sum, t;
	for (cin >> n, t = 0; t < n; t++) {
		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++) {
				mymin = 10000;
				delmin((i%m)*(1-i/m),(i%m)*(i/m), i / m, 1 - i / m);
			}
			sum += a[1][1];
			del();
		}
		cout << sum << endl;
	}
}
void zero(int a[][100], int n)	
{
	int i, j, min;
	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;
		}
	}
}
void trans(int a[][100], int n)
{
	int i, j;
	for (i = 0; i < n; i++)
	{
		for (j = 1; j < n - 1; j++)
		{
			a[i][j] = a[i][j + 1];
		}
	}
	for (j = 0; j < n; j++)
	{		
		for (i = 1; i < n - 1; i++)
		{
			a[i][j] = a[i + 1][j];
		}
	}
}
int main()
{
	int n, k, a[100][100], i, j, 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];
			}
		}
		for (j = 1; j <= n - 1; j++)
		{
			zero(a, k);	
			sum += a[1][1];
			trans(a, k);
			k--;	
		}
		cout << sum << endl;
	}
	return 0;
}
int main()
{
	int a[100][100], i, j, n, sum = 0, k, l, min;
	cin >> n;
	for (k = 1; k <= n; k++) //n???
	{
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
			{
				cin >> a[i][j];
			}
		for (l = 1; l < n ; l++) //??n-1?
		{
			for (i = 0; i < n; i++) // - row min  
			{
				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++) // - col min
			{
				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;
				}

			}
			
			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];
				}
			}
	
		}	
		cout << sum << endl;
		sum = 0;
	}
	return 0;
}
void rowset(int a[][105],int n)
{
     int i,j;
     int min;
     for (i=0;i<=n-1;i++)
     {
         min=a[i][0];
         for (j=0;j<=n-1;j++)
             if (min>a[i][j])
             min=a[i][j];
         for (j=0;j<=n-1;j++)
             a[i][j]=a[i][j]-min;
     }
}

void lineset(int a[][105],int n)
{
     int i,j;
     int min;
     for (i=0;i<=n-1;i++)
     {
         min=a[0][i];
         for (j=0;j<=n-1;j++)
             if (min>a[j][i])
             min=a[j][i];
         for (j=0;j<=n-1;j++)
             a[j][i]=a[j][i]-min;
     }
}

void form(int a[][105],int n)
{
     int i,j,k;
     for (i=0;i<=n-1;i++)
     {
         for (j=2;j<=n-1;j++)
             a[i][j-1]=a[i][j];
     }
     for (j=0;j<=n-2;j++)
     {
         for (i=2;i<=n-1;i++)
             a[i-1][j]=a[i][j];
     }
}

int main(int argc, char *argv[])
{
  int n,i,j,k,flag;
  scanf("%d",&n);
  int a[n][105];
  int sum;
  flag=n;
  for (i=0;i<=n-1;i++)
  {
      sum=0;    
      for (j=0;j<=n-1;j++)
          for (k=0;k<=n-1;k++)
              scanf("%d",a[j]+k);
      flag=n;
      while (flag>=2)
      {
       rowset(a,flag);
       lineset(a,flag);
       sum+=a[1][1];
       form(a,flag);
       flag--;
       }
      printf("%d",sum);
       (i<=n-2)?printf("\n"):printf("");
  }	
  return 0;
}
int main()
{
	int n,i,j,k,l,sum,min;
	int a[100][100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		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++)
		{
            min=a[j][0];
			for(k=1;k<n-l;k++)
			{
				if(min>a[j][k])
					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++)
		{
            min=a[0][j];
			for(k=1;k<n-l;k++)
			{
				if(min>a[k][j])
					min=a[k][j];
			}
			for(k=0;k<n-l;k++)
				a[k][j]=a[k][j]-min;
		}
		sum=sum+a[1][1];
		for(j=1;j<n-l-1;j++)
		{
			a[j][0]=a[j+1][0];
		}
		for(j=1;j<n-l-1;j++)
		{
			a[0][j]=a[0][j+1];
		}
		for(j=2;j<n-l;j++)
		{
			for(k=2;k<n-l;k++)
			{
				a[j-1][k-1]=a[j][k];
			}
		}
		}
		printf("%d\n",sum);
	}
	return 0;
}
int sum,n,a[105][105],flag2[105],min1[105],min2[105];
void f(int x);
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		sum=0;
		f(n);
		cout<<sum<<endl;
	}
	
	return 0;
}
void f(int x)
{
	if(x==n)
	{
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				cin>>a[i][j];
			}
		}
	}
	if(x==1)
	{
	}
	else
	{
		for(int i=0;i<x;i++)
		{
			flag2[i]=0;
			min1[i]=0;
			min2[i]=0;
		}
		for(int i=0;i<x;i++)
		{
			min1[i]=a[i][0];
			for(int j=0;j<x;j++)
			{
				if(a[i][j]<min1[i])
				min1[i]=a[i][j];
			}
		}
		for(int i=0;i<x;i++)
		{
			for(int j=0;j<x;j++)
			{
				if(a[i][j]-min1[i]>=0)
				{
					a[i][j]=a[i][j]-min1[i];
					if(a[i][j]==0)
					{
						flag2[j]=1;
					}
				}
			}
		}
		for(int j=0;j<x;j++)
		{
			if(flag2[j]==0)
			{
				min2[j]=a[0][j];
				for(int i=0;i<x;i++)
				{
					if(a[i][j]<min2[j])
					min2[j]=a[i][j];
				}
			}
		}
		for(int j=0;j<x;j++)
		{
			if(flag2[j]==0)
			{
				for(int i=0;i<x;i++)
				{
					if(a[i][j]-min2[j]>=0)
					{
						a[i][j]=a[i][j]-min2[j];
					}
				}
			}
		}
		sum=sum+a[1][1];
		for(int i=0;i<x;i++)
		{
			for(int j=1;j<x-1;j++)
			{
				a[i][j]=a[i][j+1];
			}
		}
		for(int j=0;j<x-1;j++)
		{
			for(int i=1;i<x-1;i++)
			{
				a[i][j]=a[i+1][j];
			}
		}
		f(x-1);
	}
}
int main()
{
	int a[100][100],i,j,k,l,m,n,x,y,min,sum;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		sum=0;
		for(x=0;x<n;x++)
		{
			for(y=0;y<n;y++)
			{
				scanf("%d",&a[x][y]);
			}
		}
		for(j=n;j>1;j--)
		{
			for(x=0;x<j;x++)
			{
			    min=a[x][0];
			    for(y=1;y<j;y++)
				{
				    if(a[x][y]<min)
					{
					    min=a[x][y];
					}
				}
			    for(y=0;y<j;y++)
				{
				    a[x][y]=a[x][y]-min;
				}
			}
			for(y=0;y<j;y++)
			{
				min=a[0][y];
				for(x=1;x<j;x++)
				{
					if(a[x][y]<min)
					{
						min=a[x][y];
					}
				}
				for(x=0;x<j;x++)
				{
					a[x][y]=a[x][y]-min;
				}
			}
			for(k=2;k<j;k++)
			{
				a[0][k-1]=a[0][k];
			}
			for(k=2;k<j;k++)
			{
				a[k-1][0]=a[k][0];
			}
			sum=sum+a[1][1];
			for(x=2;x<j;x++)
			{
				for(y=2;y<j;y++)
				{
					a[x-1][y-1]=a[x][y];
				}
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}
//**********************************************************
//*   ?  ?   ?: ?????????.cpp                  *
//*   ?       ?: ? ?                                   *
//*   ? ? ? ?: 2010?12?3?                           *
//**********************************************************
int array(int k);                                   //?????????????
int a[100][100];
int main()
{
	int n,k;                                        //n?????k????????
	int i=0,j=0;
	cin>>n;
	k=n;
	while(n--)
	{
		for(i=0;i<k;i++)
			for(j=0;j<k;j++)
				cin>>a[i][j];                       //????
		cout<<array(k)<<endl;
	}
	return 0;
}

int array(int k)                                    //??????????
{
	if(k==1)                                        //?????????
		return 0;
	else if(k>1)
	{
		int i,j,max1,max2;                          //max1,max2????????
		for(i=0;i<k;i++)
		{
			max1=10000;
			for(j=0;j<k;j++)
			{
				if(max1>a[i][j])
					max1=a[i][j];                   //?????
			}
			for(j=0;j<k;j++)
				a[i][j]=a[i][j]-max1;               //??????
		}
		for(j=0;j<k;j++)
		{
			max2=10000;
			for(i=0;i<k;i++)
			{
				if(max2>a[i][j])
					max2=a[i][j];                   //?????
			}
			for(i=0;i<k;i++)
				a[i][j]=a[i][j]-max2;               //??????
		}
		int temp=a[1][1];                           //??a[1][1]??
		for(i=2;i<k;i++)
			for(j=0;j<k;j++)
				a[i-1][j]=a[i][j];                  //???
		for(j=2;j<k;j++)
			for(i=0;i<k;i++)
				a[i][j-1]=a[i][j];                  //???
		return temp+array(k-1);
	}
	return 0;
}
int n, i, j, k, rec, sum;
int x[150][150];

void F()
{
	int p, q, min;
	for(p = 1;p <= rec;p++)
	{
		min = (*(*(x + p) + 1));
		for(q = 1;q <= rec;q++)
			min = ((*(*(x + p) + q)) < min) ? (*(*(x + p) + q)) : min;
		for(q = 1;q <= rec;q++)
			(*(*(x + p) + q)) -= min;
	}
	for(p = 1;p <= rec;p++)
	{
		min = (*(*(x + 1) + p));
		for(q = 1;q <= rec;q++)
			min = ((*(*(x + q) + p)) < min) ? (*(*(x + q) + p)) : min;
		for(q = 1;q <= rec;q++)
			(*(*(x + q) + p)) -= min;
	}
	sum += (*(*(x + 2) + 2));
	for(p = 2;p < rec;p++)
		(*(*(x + 1) + p)) = (*(*(x + 1) + p + 1));
	for(p = 2;p < rec;p++)
		(*(*(x + p) + 1)) = (*(*(x + p + 1) + 1));
	for(p = 2;p < rec;p++)
	{
		for(q = 2;q < rec;q++)
			(*(*(x + p) + q)) = (*(*(x + p + 1) + q + 1));
	}
	return;
}

int main()
{
	cin >> n;
	for(k = 1;k <= n;k++)
	{
		rec = n;
		sum = 0;
		for(i = 1;i <= n;i++)
			for(j = 1;j <= n;j++)
				cin >> (*(*(x + i) + j));
		while(rec > 1)
		{
			F();
			rec--;
		}
		cout << sum << endl;
	}
	return 0;
}
//*************************
//*  ???????????? 
//*  ????? 
//*  ???1200012941 
//*  ???2012?11?22? 
//*************************

int guiling(int count);              //?????? 
int xiaojian(int count);             //?????? 

int n;                               //?n???????????????n*n? 
int a[101][101];                     //??????????????????????? 
int main()                      
{
    int i, j, k;
    cin >> n;
    for (i = 1; i <= n; i++)
    {
        int sum = 0;
        for (j = 0; j < n; j++)
         for (k = 0; k < n; k++)
         {
             cin >> a[j][k];
         }
        for (int count = n; count > 1; count--)   //?????n?????????????2??????? 
        {
              guiling(count);      //?????? 
              sum += a[1][1];      //????a[1][1]?? 
              xiaojian(count);     //?????? 
        }
        cout << sum << endl;
    }
    return 0;
}

int guiling(int count)             //???? 
{
    int j, k;
    for (j = 0; j < count; j++)
    {
        int min = a[j][0];                //?????????????? 
        for (k = 1; k < count; k++)       //????????????? 
        {
            if (min > a[j][k])
            {
                min = a[j][k];
            }
        }
        for (k = 0; k < count; k++)      //???????????? 
        {
            a[j][k] -= min;
        }
    }
    for (k = 0; k < count; k++)          //????????? 
    {
         int min = a[0][k];
         for (j = 1; j < count; j++)
         {
              if (min > a[j][k])
              {
                  min = a[j][k];
              }
         }
         for (j = 0; j < count; j++)     //???????????? 
         {
             a[j][k] -= min;
         }
    }
}

int xiaojian(int count)                  //???? 
{
    int j, k;
    for (j = 1; j < count - 1; j++)      //????????????????n-1?n-1???????? 
    {
        a[0][j] = a[0][j + 1];
        a[j][0] = a[j + 1][0];
        for (k = 1; k < count - 1; k++)
        {
             a[j][k] = a[j + 1][k + 1];
        }
    }
}
int w[200][200];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
for(int x=0;x<n;x++)
for(int y=0;y<n;y++)
cin>>w[x][y];
int s=0;
for(int m=1;m<n;m++){
	for(int x=0;x<n;x++){
		int minn=w[x][0];
		for(int y=m;y<n;y++)
			if(w[x][y]<minn)minn=w[x][y];
		w[x][0]-=minn;
		for(int y=m;y<n;y++)
			w[x][y]-=minn;
	}
	for(int y=0;y<n;y++){
		int minn=w[0][y];
		for(int x=m;x<n;x++)
			if(w[x][y]<minn)minn=w[x][y];
		w[0][y]-=minn;
		for(int x=m;x<n;x++)
			w[x][y]-=minn;
	}
	s+=w[m][m];
}
cout<<s<<endl;
}
return 0;
}
int main()
{
	int n;
	cin >> n;
	int num[n][n];
	int sum = 0;
	int min = 0;
	for (int k = 0; k < n; k++)               // N? 
	{
		sum = 0;
		for (int i = 0; i < n; i++)           // ??
		{
			for (int j = 0; j < n; j++)
				cin >> num[i][j];
		}
		for (int s = 0; s < n - 1; s++)
		{
			for (int i = 0; i < n; i++)           // ???? 
			{
				min = INT_MAX;
				for (int j = 0; j < n; j++)
				{
					if (num[i][j] >= 0 && num[i][j] < min)
					min = num[i][j];
				}
				for (int j = 0; j < n; j++)      // ???? 
					num[i][j] -= min;
			}
			for (int j = 0; j < n; j++)         // ???? 
			{
				min = INT_MAX;
				for (int i = 0; i < n; i++)
					if (num[i][j] >= 0 && num[i][j] < min)
					min = num[i][j];
				for (int i = 0; i < n; i++)      // ??? 
					num[i][j] -= min;
			}
			sum += num[1 + s][1 + s];            // ????????? 
			for (int i = 0; i < n; i++)          // ??? ??-1? 
			{
				num[1 + s][i] = -1;
				num[i][1 + s] = -1;
			}	
		}
		cout << sum << endl;
	}
	return 0; 
}