semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
/*
 * test4_5.cpp
 *?? - ?????????
 *  Created on: 2010-12-31
 *      Author: 10035
 */

int a[101][101];   //a[i][0]?-1???i????; a[0][J]=-1??j????
int n;

int search(int m)  //m????m ??
{
	int i,j,k,min;
    if (m>n) return 0;
	                                  //???
	for (i=1;i<=n;i++)
	  if (a[i][0]!=-1)
		{
			min=99999999;
			for (j=1;j<=n;j++)  if ((a[0][j]!=-1)&&(a[i][j]<min))  min=a[i][j];
			if (min==0)  continue ;
			for (j=1;j<=n;j++)  if (a[0][j]!=-1)  a[i][j]=a[i][j]-min;
		}
	                                 //???
	for (j=1;j<=n;j++)
		  if (a[0][j]!=-1)
			{
				min=99999999;
				for (i=1;i<=n;i++)  if ((a[i][0]!=-1)&&(a[i][j]<min))  min=a[i][j];
				if (min==0)  continue ;
				for (i=1;i<=n;i++)  if (a[i][0]!=-1)  a[i][j]=a[i][j]-min;
			}
	i=a[m][m];
	a[m][0]=-1;
	a[0][m]=-1;  //???m??
	return (i+search(m+1));
}
int main()
{
	int i,j,t;
	cin>>n;
	for (t=1;t<=n;t++)
	{
		for (i=1;i<=n;i++)  for (j=1;j<=n;j++)  cin>>a[i][j];
		for (i=1;i<=n;i++)  {a[0][i]=0; a[i][0]=0; }
		cout<<search(2)<<endl;
	}
	return 0;
}
int f(int n, int a[101][101])
{
	int i, j, min, k;
	for (i = 1; i <= n; i++)
	{
		min = a[i][1];
		for (j = 1; j <= n; j++)
			if (a[i][j] < min)
				min = a[i][j];
		for (j = 1; j <= n; j++)
			a[i][j] -= min;
	}
	for (i = 1; i <= n; i++)
	{
		min = a[1][i];
		for (j = 1; j <= n; j++)
			if (a[j][i] < min)
				min = a[j][i];
		for (j = 1; j <= n; j++)
				a[j][i] -= min;
	}
	if (n == 2)
		return a[2][2];
	else
	{
		k = a[2][2];
		for(i = 3; i <= n; i++)
		{
			a[1][i - 1] = a[1][i];
			a[i - 1][1] = a[i][1];
		}
		for (i = 3; i <= n; i++)
			for (j = 3; j <= n; j++)
				a[i - 1][j - 1] = a[i][j];
		n--;
		return k + f(n, a);
	}
}
int main()
{
	int a[101][101] = {0}, n, i, j, k;
	cin >> n;
	for (k = 1; k <= n; k++)
	{
		for (i = 1; i <= n; i++)
			for (j = 1; j <= n; j++)
				cin >> a[i][j];
		cout << f(n, a) << endl;
		memset(a, 0, sizeof(a));
	}
	return 0;
}
int main ()
{
    int m,n,s=0;
    int a[200][200];
    int (*p)[200]=a;
    cin>>n;
    m=n;
    for (int q=0;q<m;q++)
    {
        s=0;
        n=m;
        for(int i=0;i<m;i++)///shuru
            for (int j=0;j<m;j++)
                cin>>*(*(p+i)+j);
        for (int w=0;w<m-1;w++)
        {
            for (int i=0;i<n;i++)///hangxiaojian
            {
                int l=*(*(p+i));
                for (int j=0;j<n;j++)
                    if (l>*(*(p+i)+j))l=*(*(p+i)+j);
                for (int j=0;j<n;j++)
                    *(*(p+i)+j)=*(*(p+i)+j)-l;
            }
            for (int j=0;j<n;j++)///liexiaojian
            {
                int l=*(*(p)+j);
                for (int i=0;i<n;i++)
                    if (l>*(*(p+i)+j))l=*(*(p+i)+j);
                for (int i=0;i<n;i++)
                    *(*(p+i)+j)=*(*(p+i)+j)-l;
            }
            s=s+*(*(p+1)+1);
            for (int i=0;i<n;i++)
                for (int j=1;j<n-1;j++)
                    *(*(p+i)+j)=*(*(p+i)+j+1);
            for (int j=0;j<n-1;j++)
                for (int i=1;i<n-1;i++)
                    *(*(p+i)+j)=*(*(p+i+1)+j);
            n--;
        }
        cout <<s<<endl;
    }
    return (0);
}
int main()
{
  int n;
  scanf("%d",&n);
  int k;
  for(k=0;k<n;k++)
  {
  int i,j,l;
  int a[100][100];
  int s[100];
  
  for(i=0;i<n;i++)
  {
	  for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
  }
  
  for(l=0;l<n-1;l++)
  {
	  int minh[100]={0};
  for(i=0;i<n;i++)
  {
	  
	  if(a[i][0]>=0)
	  {
	  minh[i]=a[i][0];
    for(j=0;j<n;j++)
	{
	  if(a[i][j]<minh[i]&&a[i][j]>=0) minh[i]=a[i][j];
	}
	for(j=0;j<n;j++)
	{
	  a[i][j]=a[i][j]-minh[i];
	}
	  }
  }
  int minl[100]={0};
  for(i=0;i<n;i++)
  {
	  if(a[0][i]>=0) 
	  
	  {
		  minl[i]=a[0][i];
   for(j=0;j<n;j++)
	{
	  if(a[j][i]<minl[i]&&a[i][j]>=0) minl[i]=a[j][i];
	}
	for(j=0;j<n;j++)
	{
	  a[j][i]=a[j][i]-minl[i];
	}
	  }
  }
  s[l]=a[l+1][l+1];
  
  for(i=0;i<n;i++)
  {
	  a[l+1][i]=-1;
    a[i][l+1]=-1;
  }
  }
  int sum=0;
  for(i=0;i<n-1;i++)
  {
    sum=sum+s[i];
  }
  printf("%d\n",sum);
}
}
int zhi(int num[][100] , int n );
int main()
{
	int in , i , j , k , cal[100][100]={0};
	cin >> in ;
	for (k = 0 ; k < in ; k++)
	{
		for(i = 0 ; i < in ; i++)
			for(j = 0 ; j < in ; j++)
				cin >> cal[i][j];
				cout << zhi (cal , in) << endl;
	}
	return 0 ;
}
int zhi(int num[][100] , int n)
{
	int i , j , min[100] , sum = 0 , temp ;
	if ( n == 1 )	return 0 ;
	for(i = 0 ; i < n ; i++)
	{
		min[i] = num[i][0];
		for(j = 0 ; j < n ; j++)
			if(num[i][j] < min[i])	min[i] = num[i][j] ;
	}
	for(i = 0 ; i < n ; i++)
		for(j = 0 ; j < n ; j++)
			num[i][j] = num[i][j] - min[i] ;
	for(j = 0 ; j < n ; j++)
	{
		min[j] = num[0][j];
		for(i = 0 ; i < n ; i++)
			if(num[i][j] < min[j])	min[j] = num[i][j] ;
	}
	for(j = 0 ; j < n ; j++)
		for(i = 0 ; i < n ; i++)
			num[i][j] = num[i][j] - min[j] ;
	temp = num[1][1] ;
	for(i = 0 ; i < n ; i ++)
		for (j = 1 ; j < n ; j++)
			num[i][j] = num[i][j+1] ;
	for(j = 0 ; j < n ; j++)
		for (i = 1 ; i < n ; i++)
			num[i][j] = num[i+1][j];
	sum = zhi( num , n-1) + temp ;
	return sum ;
}
int sum = 0;
inline int FindMin_i(int M[][100],int i,int n)
{
	int Min = M[i][0];
	for (int j = 0 ; j < n ; j++)
	{
		if(Min > M[i][j])
		{
			Min = M[i][j];
		}
	}
	return Min;
}
inline int FindMin_j(int M[][100],int j,int n)
{
	int Min = M[0][j];
	for(int i = 0 ; i < n ; i++)
	{
		if (Min > M[i][j])
		{
			Min = M[i][j];
		}
	}
	return Min;
}
int S(int M[][100],int n)
{
	if ( n == 1)
	{
		return sum;
	}
	int Min_i = 0;
	for (int i = 0 ; i < n ; i ++)
	{
		Min_i = FindMin_i(M,i,n);
		for (int j = 0 ; j < n ;j ++)
		{
			M[i][j] = M[i][j] - Min_i;
		}
	}
	int Min_j = 0;
	for (int j = 0 ; j < n ; j ++)
	{
		Min_j = FindMin_j(M,j,n);
		for (int i = 0 ; i < n ; i++)
		{
			M[i][j] = M[i][j] - Min_j;
		}
	}
	sum = sum + M[1][1];
	///////////////////////////
	for (int i = 1 ; i < n - 1 ; i ++)
	{
		M[i][0] = M[i+1][0];
	}
	//////////////////////////
	for (int j = 1 ; j < n - 1 ; j++)
	{
		M[0][j] = M[0][j+1];
	}
	/////////////////////////
	for (int i = 1 ; i < n - 1 ; i ++)
	{
		for (int j = 1 ; j < n - 1 ; j ++)
		{
			M[i][j] = M[i+1][j+1];
		}
	}
	//////////////////////////////////////////////////
	S(M,n-1);
}

int main()
{
	int M[100][100] = {0};
	int n;
	cin >> n;
	for (int num = 0 ; num < n ; num ++)
	{
		for (int i = 0 ; i < n ; i ++ )
		{
			for (int j = 0 ; j < n ; j ++)
			{
				cin >> M[i][j];
			}
		}
		sum = 0;
		cout<<S(M,n)<<endl;
	}
	return 0;
}
/*
 * ????juzhenxiaojian.cpp
 * ??????
 * ?????2012 11 28
 * ????????????????
 */



int juzhen[100][100];

int sum(int n){
    int i,j,t;
    int min[n];
    if (n!=1){
    for (i=0;i<n;i++){
    min[i]=juzhen[i][0];
    	for (j=0;j<n;j++){
    		if(juzhen[i][j]<min[i])
    			min[i]=juzhen[i][j];
        }
    	for (j=0;j<n;j++)
    		juzhen[i][j] -= min[i];      //???????????
    }
    for (j=0;j<n;j++){
        min[j]=juzhen[0][j];
        	for (i=0;i<n;i++){
        		if(juzhen[i][j]<min[j])
        			min[j]=juzhen[i][j];
            }
        	for (i=0;i<n;i++)
        		juzhen[i][j] -= min[j];   //?????????????
        }
    t=juzhen[1][1];                       //??????juzhen[1][1]
    for (i=0;i<n;i++)
    	for (j=1;j<n-1;j++)
    		juzhen[i][j]=juzhen[i][j+1];
    for (j=0;j<n-1;j++)
    	for (i=1;i<n-1;i++)
    		juzhen[i][j]=juzhen[i+1][j];  //??
    return sum(n-1)+t;                    //???????1??????
    }
    else return 0;                        //????1????0
}

int main(){
	int N,I,J,K;
	cin >>N;                              //??????
	for(K=1;K<=N;K++){
	for (I=0;I<N;I++)
		for (J=0;J<N;J++)
			cin >>juzhen[I][J];           //????
	cout <<sum(N)<<endl;                  //??
    }
	return 0;
}
//1000012915???

int GL(int n,int a[][101]);           //????a[1][1]???
int Delete(int n,int a[][101]);       //???????????
int min(int a, int b);                //??????

int main()
{
	int Sum[101],n,a[101][101],i,j,k; //????????Sum

	cin>>n;                           //??n

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

		Sum[i]=GL(n,a);               //????
	}

	for(i=0;i<n;i++)cout<<Sum[i]<<endl;//????
	return 0;
}

int GL(int n,int a[][101])
{
	int Sum,i,j,MIN;

	for(i=0;i<n;i++)                   //????????
	{
		MIN=a[i][0];
		for(j=1;j<n;j++)MIN=min(MIN,a[i][j]);
		for(j=0;j<n;j++)a[i][j]=a[i][j]-MIN;
	}

	for(j=0;j<n;j++)                    //?????????
	{
		MIN=a[0][j];
		for(i=1;i<n;i++)MIN=min(MIN,a[i][j]);
		for(i=0;i<n;i++)a[i][j]=a[i][j]-MIN;
	}

	Sum=a[1][1];                         //????a[1][1]

	if(n!=2)                             //??
	{
		Delete(n,a);
		Sum=Sum+GL(n-1,a);
		return Sum;
	}

	else return Sum;                     //????
}


int min(int a, int b)                    //??????
{
	if(a>=b)return b;
	else return a;
}

int Delete(int n,int a[][101])           //???????????
{
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=1;j<n-1;j++)a[i][j]=a[i][j+1];
		a[i][n-1]=0;
	}

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

	return 0;

}
int sum = 0;
int a[101][101];
void guiling(int n){
	int i, j;
	for(i = 0; i < n; i ++){
		int 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] = a[i][j] - min;
		}
	}
	for(i = 0; i < n; i ++){
		int 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] = a[j][i] - min;
		}
	}
}
void xiaojian(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 - 1; j ++){
			a[j][i] = a[j][i+1];
		}
	}
}
void f(int n){
	if(n == 1)
		return;
	else{
		guiling(n);
		sum += a[1][1];
		xiaojian(n);
		f(n - 1);
	}
}
int main(){
	int n;
	cin >> n;
	for(int i = 0; i < n; i ++){
		sum = 0;
		for(int j = 0; j < n; j ++){
			for(int k = 0; k < n; k ++){
				cin >> a[j][k];
			}
		}
		f(n);
		cout << sum << endl;
	}
	return 0;
}
//
//  main.cpp
//  hw
//array initializer must be an initializer list
//  Created by ? ? on 12-12-19.
//  Copyright (c) 2012? ? ?. All rights reserved.
//

int main()
{
    int n;
    cin>>n;
    for(int c=0;c<n;c++){
    int a[100][100]={0},rmin[100]={0},cmin[100]={0},sum=0;
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            cin>>a[i][j];
        }
        cmin[i]=a[0][i];
        rmin[i]=a[i][0];
    }
    for(int k=0;k<n-1;k++)
    {
    for (int i=0; i<n-k; i++) {
        cmin[i]=a[0][i];
        rmin[i]=a[i][0];
    }
    for (int i=0; i<n-k; i++) {
        for (int j=0; j<n-k; j++) {
            if (rmin[i]>a[i][j]) {
                rmin[i]=a[i][j];
            }
        }
        for (int j=0; j<n-k; j++){
            a[i][j]-=rmin[i];
        }
    }
    
    for (int i=0; i<n-k; i++) {
        for (int j=0; j<n-k; j++) {
            if (cmin[i]>a[j][i]) {
                cmin[i]=a[j][i];
            }
        }
        for (int j=0; j<n-k; j++) {
            a[j][i]-=cmin[i];
        }
    }
    sum+=a[1][1];
        for (int i=2; i<n-k; i++) {
            for (int j=0; j<n-k; j++) {
                a[i-1][j]=a[i][j];
            }
        }
        for (int j=2; j<n-k; j++) {
            for (int i=0; i<n-k; i++) {
                a[i][j-1]=a[i][j];
            }
        }
        
    }
    cout<<sum<<endl;
    }
}
int n, i, k, j, p, q, a[110][110] = {0}, Min, sum;
int get()
{	
	for (p = 0; p < n - 1; p++)
	{
		for (k = 0; k < q; k++)
		{
			Min = 99999999;
			for (j = 0; j < q; j++)
			{
				if (Min > a[k][j])
					Min = a[k][j];
			}
			if (Min != 0)
			{
				for (j = 0; j < q; j++)
					a[k][j] -= Min;
			}
		}
		for (k = 0; k < q; k++)
		{
			Min = 99999999;
			for (j = 0; j < q; j++)
			{
				if (Min > a[j][k])
					Min = a[j][k];
			}
			if (Min != 0)
			{
				for (j = 0; j < q; j++)
					a[j][k] -= Min;
			}
		}
		sum += a[1][1];
		q--;
		for (k = 0; k < q - 1; k++)
			for (j = 0; j < q + 1; j++)
			{
				a[k+1][j] = a[k+2][j];
			}
		for (k = 0; k < q; k++)
			for (j = 0; j < q - 1; j++)
			{
				a[k][j+1] = a[k][j+2];
			}
	}
	return sum;
}
int main()
{
	cin >> n;
	for (i = 0; i < n; i++)
	{
		sum = 0;
		q = n;
		for (k = 0; k < n; k++)
			for (j = 0; j < n; j++)
				cin >> a[k][j];
		cout << get() << endl;
	}
	return 0;
}
int a[100][100],n;

int juzhen()
{
	int j1,j2,j3,j4,j5;
	int min,sum=0;
	for(j1=n;j1>1;j1--)
	{
		for(j2=0;j2<j1;j2++)
		{
			min=a[j2][0];
			for(j3=0;j3<j1;j3++)
			{
				if(a[j2][j3]<min)
				min=a[j2][j3];
			}
			for(j3=0;j3<j1;j3++)
			{
				a[j2][j3]=a[j2][j3]-min;
			}
		}
		for(j4=0;j4<j1;j4++)
		{
			min=a[0][j4];
			for(j5=0;j5<j1;j5++)
			{
				if(a[j5][j4]<min)
				min=a[j5][j4];
			}
			for(j5=0;j5<j1;j5++)
			{
				a[j5][j4]=a[j5][j4]-min;
			}
		}
		sum=sum+a[1][1];
		for(j2=0;j2<j1;j2++)
		{
			for(j3=0;j3<j1;j3++)
			{
				if(j2==0&&j3>1)
				a[j2][j3-1]=a[j2][j3];
				if(j3==0&&j2>1)
				a[j2-1][j3]=a[j2][j3];
				if(j2>1&&j3>1)
				a[j2-1][j3-1]=a[j2][j3];
			}
		}
	}
	return sum;
}

int main()
{
	int m1,m2,m3,sum;
	cin>>n;
	for(m1=1;m1<=n;m1++)
	{
		for(m2=0;m2<n;m2++)
		{
			for(m3=0;m3<n;m3++)
			{
				cin>>a[m2][m3];
			}
		}
		sum=juzhen();
		cout<<sum<<endl;
	}
}
int a[102][102], b[101], c[101], n;
void f(int a[102][102]);
int main()
{
	int i=0, j=0, k=0;
	cin>>n;
	for(k=0; k<n; k++)
	{
		for(i=0; i<n; i++)
			for(j=0; j<n; j++)
				cin>>a[i][j];
		f(a);
	}

return 0;
}
void f(int a[][102])
{
	int i=0, j=0, k=0, sum=0;
	for(k=1; k<n; k++)
	{
		for(i=0; i<n; i++)
		{
			if(i>=k || i==0)
			{
				b[i]=a[i][0];
				for(j=1; j<n; j++)
					if(a[i][j]<b[i])
						b[i]=a[i][j];

				for(j=0; j<n; j++)
					a[i][j]-=b[i];
			}
		}
		for(j=0; j<n; j++)
		{
			if(j>=k || j==0)
			{
				c[j]=a[0][j];   
				for(i=0; i<n; i++)
				{
					if(c[j]> a[i][j])
						c[j]= a[i][j];
				}
				for(i=0; i<n; i++)
					a[i][j]-=c[j];
			}
		}
		 sum+=a[k][k];
		 //cout<<sum<<' '<<k<<' ';
		for(i=0; i<n; i++)
		{
			a[i][k]=1000000;
			a[k][i]=1000000;
		}
	}
	cout<<sum<<endl;
}
int main()
{
	int n,a[100][100]={0},p,sum,i,j,k;
	void m1(int n,int a[100][100]);
	void m2(int n,int a[100][100]);
	void deal(int n,int a[100][100]);
	scanf("%d",&n);
	k=n;
	while(k--)
	{
		sum=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&a[i][j]);
		p=n-1;
		while(p)
		{
			m1(p+1,a);m2(p+1,a);
			sum+=a[1][1];
			deal(p+1,a);
			p--;
		}
		printf("%d\n",sum);
	}
	return 0;
}
void m1(int n,int a[100][100])
{
	int min,i,j;
	for(i=0;i<n;i++)
	{
		min=a[i][0];
		for(j=0;j<n;j++)
		{
			if(!min)break;
			if(a[i][j]<min)min=a[i][j];
		}
		if(min)for(j=0;j<n;j++)a[i][j]-=min;
	}
}
void m2(int n,int a[100][100])
{
	int min,i,j;
	for(j=0;j<n;j++)
	{
		min=a[0][j];
		for(i=0;i<n;i++)
		{
			if(!min)break;
			if(a[i][j]<min)min=a[i][j];
		}
		if(min)for(i=0;i<n;i++)a[i][j]-=min;
	}
}
void deal(int n,int a[100][100])
{
	int i,j;
	for(i=0;i<n;i++)
		for(j=1;j<n-1;j++)
			a[i][j]=a[i][j+1];
	for(i=0;i<n-1;i++)
		for(j=1;j<n-1;j++)
			a[j][i]=a[j+1][i];
}
int main()
{
	int n,k,a[100][100],b[10000],min=0;
	cin>>n;
	k=n;
	while(k>0)
	{
		memset(a,0,sizeof(a));
		int i,j,k1,sum=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j];
		k1=n;
		while(k1>1)
		{
			for(i=0;i<k1;i++)
			{
				min=a[i][0];
				for(j=0;j<k1;j++)//?????????
					if(a[i][j]<min)
						min=a[i][j];
				for(j=0;j<k1;j++)
					a[i][j]=a[i][j]-min;
			}
			for(i=0;i<k1;i++)
			{
				min=a[0][i];
				for(j=0;j<k1;j++)
					if(a[j][i]<min)
						min=a[j][i];
				for(j=0;j<k1;j++)
					a[j][i]=a[j][i]-min;
			}
			sum=sum+a[1][1];
			int count=0;
			memset(b,0,sizeof(b));
			for(i=0;i<k1;i++)
			{
				if(i==1)continue;
				for(j=0;j<k1;j++)
				{
					if(j==1)continue;
					b[count++]=a[i][j];
				}
			}
			k1--;
			memset(a,0,sizeof(a));
			int x=0;
			for(i=0;i<k1;i++)
				for(j=0;j<k1;j++)
					a[i][j]=b[x++];
		}
		cout<<sum<<endl;
		sum=0;
		k--;
	}
	return 0;
}
/*
 * ????1002.cpp
 * ??????
 * ?????2012-11-27
 * ?????????????
 */



int a[101][101]; //??????

int f(int n) { //n???????
	if (n == 1)
		return 0; //?????1*1???0
	int h, w, mw, mh, i, j; //????
	for (i = 1; i <= n; ++i) {
		mw = 1000; //?????????
		for (h = 1; h <= n; ++h)
			if (a[i][h] < mw)
				mw = a[i][h]; //????
		for (h = 1; h <= n; ++h)
			a[i][h] -= mw; //??
	}
	for (i = 1; i <= n; ++i) {
		mh = 1000; //??????
		for (h = 1; h <= n; ++h)
			if (a[h][i] < mh)
				mh = a[h][i]; //????
		for (h = 1; h <= n; ++h)
			a[h][i] -= mh; //??
	}
	w = a[2][2]; //???????
	for (i = 2; i < n; ++i)
		for (j = 1; j <= n; ++j)
			a[i][j] = a[i + 1][j];
	for (i = 2; i < n; ++i)
		for (j = 1; j < n; ++j)
			a[j][i] = a[j][i + 1]; //?????????
	return w + f(n - 1); //??????????????????????
}

int main() {
	int n, i, i1, i2;
	cin >> n; //?????????
	for (i = 1; i <= n; ++i) {
		for (i1 = 1; i1 <= n; ++i1)
			for (i2 = 1; i2 <= n; ++i2)
				cin >> a[i1][i2]; //??????
		cout << f(n) << endl; //????????
	}
	return 0; //????
}
int main()
{
	int n,r;                                         //n???????,r??????
	int mat[100][100];                               //??????
	cin>>n;                                          //??n?
	for(int a=0;a<n;a++)                             //??n???
	{
		int sum=0;                                   //sum????0
		r=n;                                         //r????n
		for(int b=0;b<n;b++)                         //?????????
		{
			for(int c=0;c<n;c++)
			{
				cin>>mat[b][c];
			}
		}
		for(int d=0;d<n-1;d++)                       //??+??n-1?
		{
			int minh[100],minl[100];                 //minh??????,minl??????
			for(int d=0;d<r;d++)                     //???
			{
				minh[d]=9999999;
				minl[d]=9999999;
			}
			for(int e=0;e<r;e++)                     //?????
			{
				for(int f=0;f<r;f++)
				{
					if(minh[e]>mat[e][f])
					{
						minh[e]=mat[e][f];
					}
				}
			}
			for(int g=0;g<r;g++)                     //???
			{
				for(int h=0;h<r;h++)
				{
					mat[g][h]-=minh[g];
				}
			}
			for(int e=0;e<r;e++)                     //?????
			{
				for(int f=0;f<r;f++)
				{
					if(minl[f]>mat[e][f])
					{
						minl[f]=mat[e][f];
					}
				}
			}
			for(int g=0;g<r;g++)                     //???
			{
				for(int h=0;h<r;h++)
				{
					mat[g][h]-=minl[h];
				}
			}
			sum+=mat[1][1];                          //??sum
			for(int g=1;g<r-1;g++)                   //???
			{
				for(int h=0;h<r;h++)
				{
					mat[g][h]=mat[g+1][h];
				}
			}
			for(int h=1;h<r-1;h++)                   //???
			{
				for(int g=0;g<r-1;g++)
				{
					mat[g][h]=mat[g][h+1];
				}
			}
			r--;                                     //????,????-1
		}
		cout<<sum<<endl;                             //??sum
	}
	return 0;
}
int main()
{
	int n;		//n?n*n??
	cin >> n;
	for (int af = 1; af <= n ; af ++)
	{
		int sum = 0;
		int a[100][100];
		for (int i = 0 ; i <= n - 1 ; i ++)
			{
				for (int j = 0 ; j <= n - 1; j ++)
					cin >> a[i][j];
			}
		for (int tempn = n ; tempn >= 2 ; tempn --)
		{

			for (int i = 0 ; i <= tempn - 1; i++)		//???????
			{
				int mini = a[i][0];
				for (int j = 1 ; j <= tempn - 1 ; j++)
				{
					if (mini > a[i][j])
						mini = a[i][j];
				}
				for (int j = 0 ; j <= tempn - 1; j++)
					a[i][j] -= mini;
			}
			for (int j = 0 ; j <= tempn - 1; j++)		//???????
			{
				int minj = a[0][j];
				for (int i = 1; i <= tempn - 1 ;i ++)
				{
					if (minj > a[i][j])
						minj = a[i][j];
				}
				for (int i = 0 ;i <= tempn - 1 ; i++)
					a[i][j] -= minj;
			}
			sum += a[1][1];								//??a[1][1]
			for (int i = 2 ; i <= tempn - 1; i++)
				a[i-1][0] = a[i][0];
			for (int j = 2 ; j <= tempn - 1; j++)
				a[0][j-1] = a[0][j];
			for (int i = 2 ; i <= tempn - 1; i++)
			{
				for (int j = 2 ; j <= tempn - 1 ; j++)
					a[i-1][j-1] = a[i][j];
			}
		}
		cout << sum << endl;
	}
	cin.get();
	cin.get();
	return 0;
}
int main()
{
   int t,k,i,j,n,a[101][101],sum,min;
   cin>>n;
   for(k=0;k<n;k++)
   {
      for(i=0;i<n;i++)
	  {
         for(j=0;j<n;j++)
		 {
	        cin>>a[i][j];
		 }
	  }
	  t=n;
	  sum=0;
	  while(t>1)
	  {
	     for(i=0;i<t;i++)
		 {
		    min=a[i][0];
	        for(j=0;j<t;j++)
			{
		       if(a[i][j]<min) 
			   {
			      min=a[i][j];
			   }
			} 
		    for(j=0;j<t;j++)
			{
		       a[i][j]=a[i][j]-min;
			}
		 }
		 for(j=0;j<t;j++)
		 {
		    min=a[0][j];
			for(i=0;i<t;i++)
			{
			   if(a[i][j]<min)
			   {
			      min=a[i][j];
			   }
			}
			for(i=0;i<t;i++)
			{
			   a[i][j]=a[i][j]-min;
			}
		 }
	     sum=sum+a[1][1];
	     for(i=1;i<t-1;i++)
		 {
	        for(j=0;j<t;j++)
			{
		       a[i][j]=a[i+1][j];
			}
		 }
	     for(j=1;j<t-1;j++)
		 {
	        for(i=0;i<t+1;i++)
			{
		       a[i][j]=a[i][j+1];
			}
		 }
		 t--;
	  }
	  cout<<sum<<endl;
   }
   return 0;
}
void zero1(int *p,int n)
{
    int i,c;
    c=*p;
    for(i=1;i<n;i++)
    if(*(p+i)<c)
    c=*(p+i);
    for(i=0;i<n;i++)
    p[i]=p[i]-c;
}
void zero2(int **p,int n,int t)
{
    int i,c;
    c=*(*p+t);
    for(i=1;i<n;i++)
    if(*(*(p+i)+t)<c)
    c=*(*(p+i)+t);
    for(i=0;i<n;i++)
    *(*(p+i)+t)=*(*(p+i)+t)-c;
}
void cut(int **p,int n)
{
    int i,j;
    for(i=1;i<n-1;i++)
    for(j=0;j<n;j++)
    *(*(p+i)+j)=*(*(p+i+1)+j);
    for(i=1;i<n-1;i++)
    for(j=0;j<n;j++)
    *(*(p+j)+i)=*(*(p+j)+i+1);
}
int main()
{
    int n,m,i,j,w,c;
    int **p;
    scanf("%d",&m);
    p=(int **)malloc(m*sizeof(int *));
    for(i=0;i<m;i++)
    *(p+i)=(int *)malloc(m*sizeof(int));
    for(w=0;w<m;w++)
    {
        n=m;
        for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        scanf("%d",*(p+i)+j);
        for(i=0;i<n;i++)
        zero1(p[i],n);
        for(i=0;i<n;i++)
        zero2(p,n,i);
        c=p[1][1];
        for(i=0;i<m-2;i++)
        {
            cut(p,n);
            n--;
            for(j=0;j<n;j++)
            zero1(p[j],n);
            for(j=0;j<n;j++)
            zero2(p,n,j);
            c+=p[1][1];
        }
        printf("%d\n",c);
    }
    for(i=0;i<n;i++)
    free(p[i]);
    free(p);
    return 0;
}
int main()
{
	int n, i, j, k;
	int a[100][100];
	cin >> n;
	for(k = 1; k <=n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j];
		int m =n;
		int sum = 0;
		while(1)
		{
			int min;
			for(i=0;i<m;i++)
			{
				min=1000;
				for(j=0;j<m;j++)
				{
					if(min>a[i][j])
						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(min>a[i][j])
						min=a[i][j];
				for(i=0;i<m;i++)
					a[i][j]-=min;
			}
			sum+=a[1][1];
			m--;
			if(m==1)
			{
				cout <<sum<<endl;
				break;
			}
			for(i=1;i<m;i++)
				a[i][0]=a[i+1][0];
			for(j=1;j<m;j++)
				a[0][j]=a[0][j+1];
			for(i=1;i<m;i++)
				for(j=1;j<m;j++)
					a[i][j]=a[i+1][j+1];
		}
	}
	return 0;
}
int n,m,s,a[101][101];
void guiling(int i,int j,int x,int y){
	if(i==m||j==m) return;
	if(a[i][j]<s)  s=a[i][j];
	guiling(i+x,j+y,x,y);
	a[i][j]-=s;
}
void xiaojian(){
	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,l;
	cin>>n;
	l=n;
	while(l>0){
		for(i=0;i<n;i++)
			{for(j=0;j<n;j++)
				cin>>a[i][j];}
		int sum=0;
		for(m=n;m>0;m--){
			for(i=0;i<2*m;i++){
				if(i<m) {s=1000;
				guiling(i,0,0,1);}
				else    {s=1000;
				guiling(0,i-m,1,0);}
			}
			 sum+=a[1][1];
		     xiaojian();
		}
		cout<<sum<<endl;
	    l--;
	}
	return 0;
}
int main()
{
	int n,i,j,k,l,a[120][120],m,s,d;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		m=n;
		for(j=0;j<m;j++)
		{
			for(k=0;k<m;k++)
			{
				scanf("%d",&a[j][k]);
			}
		}
		s=0;
		while(m>=2)
		{
			for(j=0;j<m;j++)
			{
				d=0;
				for(l=1;l<m;l++)
				{
					if(a[j][l]<a[j][d])
						d=l;
				}
				d=a[j][d];
				for(k=0;k<m;k++)
				{
					a[j][k]=a[j][k]-d;
				}
			}
			for(j=0;j<m;j++)
			{
				d=0;
				for(l=1;l<m;l++)
				{
					if(a[l][j]<a[d][j])
						d=l;
				}
				d=a[d][j];
				for(k=0;k<m;k++)
				{
					a[k][j]=a[k][j]-d;
				}
			}
			s=s+a[1][1];
			for(j=0;j<m;j++)
			{
				for(k=2;k<m;k++)
				{
					a[j][k-1]=a[j][k];
				}
			}
			for(j=0;j<m-1;j++)
			{
				for(k=2;k<m;k++)
				{
					a[k-1][j]=a[k][j];
				}
			}
			m--;
		}
		printf("%d\n",s);
	}
	return 0;
}