semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
// ?????????.cpp : Defines the entry point for the console application.
//



void shuru( int);
void guiling( int );

int num[100][100] = {0};
int sum = 0;

int main()
{
	int n = 0;
	int i = 0;

	cin >> n;
	for( i = 1;i <= n;i++ )
	{
		sum = 0;
		shuru(n);
	}

	return 0;
}

void shuru( int n)
{
	int i = 0;
	int j = 0;
	

	for( i = 0;i < n;i++ )
		for( j =0;j < n;j++ )
			cin >> num[i][j];

		guiling (n);


}

void guiling( int n )
{
	if( n == 1)
		cout << sum << endl;
	else
	{
		int min = 0;

		int t = 0;
		int i = 0;

		for(  i = 0;i < n;i++ )
		{
			min = num[i][0];

			for( t = 0;t < n;t ++)
			{
				if( min > num[i][t] )
					min = num[i][t];
			}

			for( t = 0;t < n;t++ )
			{
				num[i][t] -= min;
			}
		}
	
		for( i = 0;i < n;i++ )
		{
			min = num[0][i];

			for( t = 0;t < n;t ++)
			{
				if( min > num[t][i] )
					min = num[t][i];
			}

			for( t = 0;t < n;t++ )
			{	
				num[t][i] -= min;
			}
		}

		sum += num[1][1];

		for( i = 0;i < n;i++ )
			for( t = 2;t < n;t++ )
				num[i][t - 1] = num[i][t];

		for( i = 0;i < n;i++ )
			for( t = 2;t < n;t++ )
				num[t - 1][i] = num[t][i];

		guiling( n - 1 );
	}
}
int n = 0, a[101][101] = {{0}}, sum = 0, k = 0;
int (*p)[101] = a;
void zerorow(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every row
	{
		min = *(*(p+i));
		for (int j = 1; j < k; j ++)//find min
			if ( *(*(p+i)+j) < min)
				min = *(*(p+i)+j);
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				*(*(p+i)+j) -= min;
	}
}
void zerocol(int k)
{
	int min = 0;
	for (int i = 0; i < k; i ++)//every col
	{
		min = *(*(p)+i);
		for (int j = 1; j < k; j ++)//find min
			if ( *(*(p+j)+i) < min)
				min = *(*(p+j)+i);
		if (min)
			for (int j = 0; j < k; j ++)//to zero
				*(*(p+j)+i) -= min;
	}
}
void jian(int k)
{
	for (int i = 2; i < k; i ++)//row move up
		for (int j = 0; j < k; j ++)
			*(*(p+i-1)+j) = *(*(p+i)+j);
	for (int j = 2; j < n; j ++)//col move left
		for (int i = 0; i < k - 1; i ++)
			*(*(p+i)+j-1) = *(*(p+i)+j);
}
int main()
{
	cin >> n;//cin
	while(cin >> *(*(p)))
	{
		sum = 0;
		for (int i = 0; i < n; i ++)
			for (int j = 0; j < n; j ++)
			{
				if (i + j)
					cin >> *(*(p+i)+j);
			}
		for (k = n; k > 1; k --)
		{
			zerorow(k);
			zerocol(k);
			sum += *(*(p+1)+1);
			jian(k);
		}
		cout << sum << endl;
	}
	return 0;
}
int a[105][105];
int guiling(int n);
void xiaojian(int n);

int main()
{
	int n, i, j, k;
	cin >> n;
	for(k = 0; k < n; k++)
	{
	    memset(a, 0, sizeof(a));
		for(i = 0; i < n; i++)
			for(j = 0; j < n; j++)
				cin >> a[i][j];
			cout << guiling(n) << endl;
	}

	return 0;
}
int guiling(int n)
{
	for(int i = 0; i < n; i++)
	{
        int min = a[i][0];
        for (int j = 1; j < n; j++)
		{
            if (a[i][j] < min)
                min = a[i][j];
		}
        for (int j = 0; j < n; j++)
            a[i][j] -= min;
	}
	for (int i = 0; i < n; i++)
    {
        int min = a[0][i];
        for (int j = 1; j < n; j++)
		{
            if (a[j][i] < min)
            min = a[j][i];
		}
        for (int j = 0; j < n; j++)
            a[j][i] -= min;
	}
	int k = a[1][1];
	if(n == 2)
		return k;
	else
	{
		xiaojian(n);
		return k + guiling(n - 1);
	}
}
void xiaojian(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 j = 1; j < n - 1; j++)
            a[i][j] = a[i + 1][j + 1];
    }
}
int s=0,a[100][100];
void hang(int n)
{
	for(int i=0;i<n;i++)
	{
		int min=a[i][0];
		for(int j=0;j<n;j++)
		{
			if(min>a[i][j])
				min=a[i][j];
		}
		for(int j=0;j<n;j++)
		{
			a[i][j]=a[i][j]-min;
		}
		min=0;
	}
}
void lie(int n)
{
	for(int i=0;i<n;i++)
	{
		int min=a[0][i];
		for(int j=0;j<n;j++)
		{
			if(min>=a[j][i])
				min=a[j][i];
		}
		for(int j=0;j<n;j++)
		{
			a[j][i]=a[j][i]-min;
		}
		min=0;
	}
}
void xiaoqu(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];
		}
	}
}
void sum(int n)
{
	if(n>1)
	{
		hang(n);
		lie(n);
		s+=a[1][1];
		xiaoqu(n);
		sum(n-1);
	}
}

int main()
{
	int n;
	cin>>n;
	int k=n;
	while(k)
	{
		k--;
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				cin>>a[i][j];
			}
		}
		sum(n);
		cout<<s<<endl;
		s=0;
	}
	return 0;
}
int array[100][100][100]={0};
int main()
{
	int n,sum[100]={0};
	cin>>n;
	int i,j,k,t;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>array[i][j][k];
	for(i=0;i<n;i++)
	{
        for(j=1;j<=n-1;j++)
		{
			for(k=0;k<=n-j;k++)
			{
				int min=array[i][k][0];
				for(t=1;t<=n-j;t++)
					if(min>array[i][k][t])
						min=array[i][k][t];
				for(t=0;t<=n-j;t++)
					array[i][k][t]=array[i][k][t]-min;
			}			
			for(k=0;k<=n-j;k++)
			{
				int min=array[i][0][k];
				for(t=1;t<=n-j;t++)
					if(min>array[i][t][k])
						min=array[i][t][k];
				for(t=0;t<=n-j;t++)
					array[i][t][k]=array[i][t][k]-min;
			}
			sum[i]=sum[i]+array[i][1][1];
			for(k=0;k<=n-j;k++)
				for(t=1;t<n-j;t++)
					array[i][k][t]=array[i][k][t+1];
			for(k=0;k<n-j;k++)

				for(t=1;t<n-j;t++)
					array[i][t][k]=array[i][t+1][k];
		}
		cout<<sum[i]<<endl;
	}
	return 0;
}
int main()
{   
    int n;cin>>n;
    int m=n;
    int t=n;
    while(m>0)
    {int a[100][100];
    n=t;
     m=m-1;
     for(int i=0;i<n;i++)
     for(int j=0;j<n;j++)
     cin>>a[i][j];
     int sum=0;
     while(n>1)
     {
     for(int i=0;i<n;i++)
     {int 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++)
     {int 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;   //guiling
      }
      sum+=a[1][1];
      for(int i=0;i<n;i++)  
      for(int j=1;j<n-1;j++)
      a[i][j]=a[i][j+1]  ;
     for(int i=0;i<n-1;i++)  
      for(int j=1;j<n-1;j++) 
      a[j][i]=a[j+1][i];
      n=n-1;
      }
      cout<<sum<<endl;
      }
      return 0;
      }
int sum=0;
int a[100][100]={0};
void temp(int n)
{
	if(n==1)return;
	for( int i=0;i<n;i++)
		{
			int miner=1000;
			for(int j=0;j<n;j++)
				if (miner>a[i][j])
					miner=a[i][j];
			for(int j=0;j<n;j++)
				a[i][j]=a[i][j]-miner;
		}
		for( int j=0;j<n;j++)
		{
			int miner=1000;
			for(int i=0;i<n;i++)
				if (miner>a[i][j])
					miner=a[i][j];
			for(int i=0;i<n;i++)
				a[i][j]=a[i][j]-miner;
		}
		sum=sum+a[1][1];
		for ( int i=0;i<n;i++)
		   for( int j=1;j<n-1;j++)
		      a[i][j]=a[i][j+1];
		for(int j=0;j<n-1;j++)
			for( int i=1;i<n-1;i++)
				a[i][j]=a[i+1][j];
		temp(n-1);

}
int main()
{
	int n;
	cin>>n;
	for ( int m=0;m<n;m++)
	{
	    sum=0;
		for( int i=0;i<n;i++)
			for( int j=0;j<n;j++)
				cin>>a[i][j];
		temp(n);
		cout<<sum<<endl;
    }
    
	return 0;

}
/*???????
1000010098
???*/
void change(int a[][100], int n, int step, int *sum)
{
	int i, j, min, g;
	for (i = 0; i < n; i++)
	{
		g = 0;
		if(i >= 1 && i < step)
		continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			if(a[i][j] == 0)
			{
				g = 1;
				break;
			}
			if(j == 0)
				min = a[i][j];
			if(a[i][j] < min)
				min = a[i][j];
		}
		if(g == 1)
			continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			a[i][j] -= min;
		}
	}
	for (i = 0; i < n; i++)
	{
		g = 0;
		if(i >= 1 && i < step)
		continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			if(a[j][i] == 0)
			{
				g = 1;
				break;
			}
			if(j == 0)
				min = a[j][i];
			if(a[j][i] < min)
				min = a[j][i];
		}
		if(g == 1)
			continue;
		for(j = 0; j < n; j++)
		{
			if(j >= 1 && j < step)
				continue;
			a[j][i] -= min;
		}
	}
	*sum += a[step][step];
	return;
}


			

int main ()
{
	int n, i, j , k, a[100][100], sum;
	cin >> n;
	for(i = 1; i <= n; i++)
	{
		sum = 0;
		memset(a,0,40000);
		for(j = 0; j < n; j++)
		{
			for(k = 0; k < n; k++)
			{
				cin >> a[j][k];
			}
		}
		for(j = 1; j < n; j++)
		{
			change(a,n,j,&sum);
		}
		cout << sum << endl;
	}
	return 0;
}
int n,array[101][101],sum[101]={0},k;
void cut(int m)
{
	int p,q,min;
	for(p=0;p<n-m;p++)
	{
		min=array[p][0];
		for(q=1;q<n-m;q++)
			if(array[p][q]<min)
				min=array[p][q];
		for(q=0;q<n-m;q++)
			array[p][q]=array[p][q]-min;
	}
    for(p=0;p<n-m;p++)
	{
		min=array[0][p];
		for(q=1;q<n-m;q++)
			if(array[q][p]<min)
				min=array[q][p];
		for(q=0;q<n-m;q++)
			array[q][p]=array[q][p]-min;
	}
	sum[k]=sum[k]+array[1][1];
	for(p=1;p<n-m-1;p++)
	{
		array[0][p]=array[0][p+1];
		array[p][0]=array[p+1][0];
	}
	for(p=1;p<n-m-1;p++)
		for(q=1;q<n-m-1;q++)
			array[p][q]=array[p+1][q+1];
}
int main()
{
	int i,j;
		scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				scanf("%d",&array[i][j]);
		for(i=0;i<n-1;i++)
			cut(i);
	}
	for(k=0;k<n;k++)
		printf("%d\n",sum[k]);

	return 0;
}
int main()
{
	int n,i,j,k,l,min,sum;
	int a[200][200];
	cin>>n;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			for(k=1;k<=n;k++)
				cin>>a[j][k];
		l=n;
		sum=0;
		while(n>=2)
		{
			for(j=1;j<=n;j++)
			{
				min=a[j][1];
				for(k=1;k<=n;k++)
					if(a[j][k]<min)
						min=a[j][k];
				for(k=1;k<=n;k++)
					a[j][k]-=min;
			}
			for(k=1;k<=n;k++)
			{
				min=a[1][k];
				for(j=1;j<=n;j++)
					if(a[j][k]<min)
						min=a[j][k];
				for(j=1;j<=n;j++)
					a[j][k]-=min;
			}
			sum+=a[2][2];
			for(j=2;j<=n-1;j++)
				for(k=1;k<=n;k++)
					a[j][k]=a[j+1][k];
			for(k=2;k<=n-1;k++)
				for(j=1;j<=n-1;j++)
					a[j][k]=a[j][k+1];
			n--;
		}
		n=l;
		cout<<sum<<endl;
	}
}
int sum=0;
int w=0;
int q[100][100];

void op(int n)
{
	if(n!=1)
	{
	int rm[n],cm[n];//rm[i] is the minimum of row[i][..]
	for(int i=0;i<n;i++)
	{
		rm[i]=q[i][0];
		cm[i]=q[0][i];// initialize
	}

	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(rm[i]>=q[i][j])
			{
				rm[i]=q[i][j];
			}
		}
	}// find the minimum of row

	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i][j]-rm[i];//-minimum
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(cm[j]>=q[i][j])
			{
				cm[j]=q[i][j];// find the maximum of column
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i][j]-cm[j];//-minimum
		}
	}

	sum+=q[1][1];//add before elimination
	for(int i=0;i<n;i++)
	{
		for(int j=1;j<n;j++)
		{
			q[i][j]=q[i][j+1];// shrinking
		}
	}
	for(int i=1;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			q[i][j]=q[i+1][j];//shrinking
		}
	}
	op(n-1);
}

}


int main()
{
	int n;
	cin>>n;
	for(int s=1;s<=n;s++)
	{
		for(int a=0;a<n;a++)
		{
			for(int b=0;b<n;b++)
			{
				cin>>q[a][b];
			}
		}
		op(n);
		cout<<sum<<endl;
		sum=0;//initializing
	}
	return 0;
}
void main()
{
	int n,s,i,j,k,m,t,a[100][100],x;
	scanf("%d",&n);
	x=n;
	for(i=0;i<x;i++)
	{
		s=0;
		n=x;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++) scanf("%d",&a[j][k]);
		for(t=1;t<x;t++)
		{
		for(j=0;j<n;j++)
		{
			m=a[j][0];
			for(k=1;k<n;k++)
			{
				if(a[j][k]<m) m=a[j][k];
			}
			for(k=0;k<n;k++) 
				a[j][k]=a[j][k]-m;
		}
        for(j=0;j<n;j++)
		{
			m=a[0][j];
			for(k=1;k<n;k++)
			{
				if(a[k][j]<m) m=a[k][j];
			}
			for(k=0;k<n;k++) 
				a[k][j]=a[k][j]-m;
		}
		s=s+a[1][1];
		for(j=1;j<n-1;j++)
		{
			a[0][j]=a[0][j+1];
			a[j][0]=a[j+1][0];
		}
		for(j=1;j<n-1;j++)
			for(k=1;k<n-1;k++) a[j][k]=a[j+1][k+1];
		n--;
		}
		printf("%d\n",s);
	}
}
int main()
{
	int n;
	cin>>n;
	int i;
	for(i=0;i<n;i++)
	{
		int a[100][100]={0};
		int k,l,sum=0;
		for(k=0;k<n;k++)
		{
			for(l=0;l<n;l++)
				cin>>a[k][l];
		}
		int h=n;
		do
		{
			for(k=0;k<h;k++)
			{
				int min=a[k][0];
				for(l=0;l<h;l++)
				{
					if(a[k][l]<=min)
						min=a[k][l];
				}
				for(l=0;l<h;l++)
					a[k][l]=a[k][l]-min;
			}
			for(l=0;l<h;l++)
			{
				int x=a[0][l];
				for(k=0;k<h;k++)
				{
					if(a[k][l]<=x)
					x=a[k][l];
				}
				for(k=0;k<h;k++)
					a[k][l]=a[k][l]-x;
			}
			sum=sum+a[1][1];
			h=h-1;
			for(k=1;k<h;k++)
			{
				for(l=0;l<h+1;l++)
					a[k][l]=a[k+1][l];
			}
			for(l=1;l<h;l++)
			{
				for(k=0;k<h;k++)
					a[k][l]=a[k][l+1];
			}
		}
		while(h>1);
		cout<<sum<<endl;
	}
	return 0;
}
//#include<fstream>

int main(){
	
//	ifstream cin;
//	cin.open("6.in");
	
	int n;
	int sum;
	int min;
	cin>>n;
	
	int m[n][n][n];
	
	
	for(int k=0;k<n;k++){
		for(int x=0;x<n;x++){
			for(int y=0;y<n;y++){
				cin>>m[k][x][y];
			}
		}
		
		sum=0;
		
		for(int l=1;l<n;l++){
			
			for(int x=0;x<n;x++){
				min=*min_element(m[k][x],m[k][x]+n);
				for(int y=0;y<n;y++){
					m[k][x][y]-=min;
				}
			}
			
			for(int y=0;y<n;y++){
				min=m[k][0][y];
				for(int x=1;x<n;x++){
					if(m[k][x][y]<min) min=m[k][x][y];
				}
				for(int x=0;x<n;x++){
					m[k][x][y]-=min;
				}
			}
			
			sum+=m[k][l][l];
			
			for(int i=0;i<n;i++){
				m[k][l][i]=m[k][0][i];
				m[k][i][l]=m[k][i][0];
			}
		}
		cout<<sum<<endl;
	}
}
int a[100][100]; 
int Sum(int n) ;


int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			for (int k = 0; k < n; k++)
				cin >> a[j][k];
		}
		cout << Sum(n) << endl;
		
	}
	return 0;
}




int Sum(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;
	}
	
	if (n == 2) 
		return a[1][1];
	int k = a[1][1];
	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];
	}
	return k + Sum(n - 1); 
}
// ?????????.cpp : Defines the entry point for the console application.
// ????????????????
int a[100][100];                              //???????????????
int sum(int n)                                //??????????????????
{
	int i=0,j=0,min=0,count=0;
	for(i=0;i<n;i++)                          //?????????????????????????
	{
		min=a[i][0];
		for(j=0;j<n;j++)
		{
			if(a[i][j]<min)
				min=a[i][j];
			else 
				min=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=0;j<n;j++)
		{
			if(a[j][i]<min)
				min=a[j][i];
			else 
				min=min;
		}
		for(j=0;j<n;j++)
		{
			a[j][i]=a[j][i]-min;
		}
	}
	count=count+a[1][1];                       //???????a[1][1]???
	if(n==2)                                   //???????????count
		return count;
	else                                       //?????n-1??????????
	{ 
		for(i=2;i<n;i++)     
			a[i-1][0]=a[i][0];
		for(j=2;j<n;j++)
			a[0][j-1]=a[0][j];
		for(i=2;i<n;i++)
			for(j=2;j<n;j++)
				a[i-1][j-1]=a[i][j];
		count=count+sum(n-1);
		return count;
	}
}
int main()                                           //?????
{
	int n,i=0,j=0,k=0,b[100]={0};                    //n?????
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				cin>>a[j][k];
			}
		}
		b[i]=sum(n);                                //??sum??
	}
	for(i=0;i<n;i++) 
	{
		cout<<b[i]<<endl;
	}
	return 0;
}
/*
?????????????
??????
?????2010?12?
???????????????
**/

int min(int a[], int n); //??????????????
int f(int b[][100], int n); //???????????????
int main ()
{
	int m, n, i, j;
	cin >> n;
	m = n;
	while(m--)
	{
		int a[100][100] = {0};
		for(i = 0; i < n; i++)
			for(j = 0; j < n; j++)
				cin >> a[i][j]; //??n*n??
		cout << f(a, n) << endl; //??????
	}
	return 0;
}
int min(int a[], int n)
{
	int mini = a[0], i;
	for(i = 1; i < n; i++)
	{
		if(a[i] < mini)
			mini = a[i];
	}
	return mini; //?????
}
int f(int b[][100], int n)
{
	int i, j, m, t, lmin;
	if(n == 1) //n=1?????????????1*1??
		return 0;
	else
	{
		for(i = 0; i < n; i++)
		{
			m = min(b[i], n);
			for(j = 0; j < n; j++)
				b[i][j] = b[i][j] - m; //?????????????
		}
		for(i = 0; i < n; i++)
		{
			lmin = b[0][i];
			for(j = 0; j < n; j++)
			{
				if(b[j][i] < lmin)
					lmin = b[j][i];
			}
			if(lmin > 0)
				for(j = 0; j < n; j++)
					b[j][i] = b[j][i] - lmin;
		}
		t = b[1][1]; //???2??2???
		for(i = 0; i < n; i++)
			for(j = 1; j < n - 1; j++)
				b[i][j] = b[i][j + 1]; //??2???
		for(i = 0; i < n - 1; i++)
			for(j = 1; j < n - 1; j++)
				b[j][i] = b[j + 1][i]; //???2???
		return f(b, --n) + t; //??
	}
}
int main()
{
	int s[100][100],n,j,k,p,min,count1=0,l = 0;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		count1 = 0;
		l=0;
		for(j=0;j<n;j++)
			for(p=0;p<n;p++)
				cin>>*(*(s+j)+p);
		for(k=1;k<n;k++)
		{
		for(j=0;j<n-l;j++)
		{
			min=*(*(s+j)+0);
			for(p=0;p<n-l;p++)
			{
				if(*(*(s+j)+p)<min) min = *(*(s+j)+p);
			}
			for(p=0;p<n-l;p++)
			{
				*(*(s+j)+p) = *(*(s+j)+p) - min;
			}
		}
		for(j=0;j<n-l;j++)
		{
			min=*(*(s)+j);
			for(p=0;p<n-l;p++)
			{
				if(*(*(s+p)+j)<min) min = *(*(s+p)+j);
			}


			for(p=0;p<n-l;p++)
			{
				*(*(s+p)+j) =*(*(s+p)+j) - min;
			}
		}
		count1+=(*(*(s+1)+1));
		for(j=0;j<n-l;j++)
			for(p=1;p<n-1-l;p++)
				*(*(s+j)+p) = *(*(s+j)+p+1);
		for(j=0;j<n-l;j++)
			for(p=1;p<n-1-l;p++)
				*(*(s+p)+j) = *(*(s+p+1)+j);
		l++;
		}
		cout << count1 << endl;
	}
	return 0;
}
int a[100][100][100];
int main()
{
	int n,i,j,k,sum[100]={0},l,min;
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			for(k=0;k<n;k++)
			{
				cin>>a[i][j][k];
			}
		}
	}
	for(i=0;i<n;i++)
	{
		l=n;
		while(l>1)
		{
			for(j=0;j<l;j++)
			{	
				min=100000;
				for(k=0;k<l;k++)
				{
					if(a[i][j][k]<min)
						min=a[i][j][k];
				}
				for(k=0;k<l;k++)
					a[i][j][k]-=min;
			}
				for(k=0;k<l;k++)
			{
				min=100000;
				for(j=0;j<l;j++)
				{
					if(a[i][j][k]<min)
						min=a[i][j][k];
				}
				for(j=0;j<l;j++)
					a[i][j][k]-=min;
			}
			sum[i]+=a[i][1][1];
			for(j=2;j<l;j++)
				for(k=0;k<l;k++)
					a[i][j-1][k]=a[i][j][k];
			for(k=2;k<l;k++)
				for(j=0;j<l;j++)
					a[i][j][k-1]=a[i][j][k];
			l--;
		}
	}
	for(i=0;i<n;i++)
		cout<<sum[i]<<endl;
	return 0;
}
int a[101][101], n;
int rowmin(int i)
{
	int minr = INT_MAX;
	for(int i1 = 0; i1 < n; i1++)
	{
		if(a[i][i1] < minr && a[i][i1] >= 0)
		{minr = a[i][i1];}
	}
	return minr;
}
int colmin(int i)
{
	int minc = INT_MAX;
	for(int i1 = 0; i1 < n; i1++)
	{
		if(a[i1][i] < minc && a[i1][i] >= 0)
		{minc = a[i1][i];}
	}
	return minc;
}
int main()
{
	int t, k, sum, min, minc, i, j;
	cin >> n;
	for(t = 1; t <= n; t++)
	{
		k = 1;
		sum = 0;
		for(i = 0; i < n; i++)
		{
			for(j = 0; j < n; j++)
			{cin >> a[i][j];}
		}
		while(k < n)
		{
			for(i = 0; i < n; i++)
			{
				min = rowmin(i);
				for(j = 0; j < n; j++)
				{a[i][j] -= min;}
			}
			for(i = 0; i < n; i++)
			{
				min = colmin(i);
				for(j = 0; j < n; j++)
				{a[j][i] -= min;}
			}
			sum += a[k][k];
			for(i = 0; i < n; i++)
			{a[i][k] = -1;}
			for(i = 0; i < n; i++)
			{a[k][i] = -1;}
			k++;
		}
		cout << sum << endl;
	}
	return 0;
}
int a[100][100];
void q(int l)
{
	for(int g=0;g<l;g++)
		for(int h=1;h<l-1;h++)
			a[g][h]=a[g][h+1];
	for(int g=0;g<l-1;g++)
		for(int h=1;h<l-1;h++)
			a[h][g]=a[h+1][g];
}
int f(int y)
{
	int min,now;
	if(y==1)
		return 0;
	for(int g=0;g<y;g++)
	{
		min=a[g][0];
		for(int h=1;h<y;h++)
			if(a[g][h]<min)
				min=a[g][h];
		for(int h=0;h<y;h++)
			a[g][h]-=min;
	}
	for(int g=0;g<y;g++)
	{
		min=a[0][g];
		for(int h=1;h<y;h++)
			if(a[h][g]<min)
				min=a[h][g];
		for(int h=0;h<y;h++)
			a[h][g]-=min;
	}
	now=a[1][1];
	q(y);
	return now+f(y-1);
}
int main()
{
	int n;
	cin>>n;
	for(int k=1;k<=n;k++)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		cout<<endl<<f(n);
	}
	return 0;
}
int a[100][100];
int zero(int);//????
void reduce(int);//????
int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
			for (int k = 0; k < n; k++)
				cin >> a[j][k];//????
				cout << zero(n) << endl;//?????????????
	}
	return 0;
}
int zero(int count)
{
	int i,j,sum=0;
	while (count >= 2)
	{
		for (i = 0; i < count; i++)
		{
			int min = a[i][0];
			for (j = 1; j < count; j++)
				if (a[i][j] < min)
					min = a[i][j];
			for (j = 0; j < count; j++)
				a[i][j] -= min;
		}//???
		for (i = 0; i < count; i++)
		{
			int min = a[0][i];
			for (j = 1; j < count; j++)
				if (a[j][i] < min)
					min = a[j][i];
			for (j = 0; j < count; j++)
				a[j][i] -= min;
		}//???
		sum += a[1][1];//??a[1][1]??
		reduce(count);//??
		count--;//????1
	}
	return sum;//????a[1][1]??
}
void reduce(int count)
{
	for (int i = 1; i < count - 1; i++)
	{
		a[0][i] = a[0][i + 1];
		a[i][0] = a[i + 1][0];
		for (int j = 1; j < count - 1; j++)
			a[i][j] = a[i + 1][j + 1];
	}
}
int main()
{
    int sum(int a[100][100],int n);
    int a[100][100];
    int n;
    cin>>n;
    int i,j,k;
    for(i=0;i<n;i++)
        {
         for(j=0;j<n;j++)
              for(k=0;k<n;k++)
                   cin>>a[j][k];   //?????? 
         cout<<sum(a,n)<<endl;
         }
    return 0;
}

int sum(int a[100][100],int n)      //?????????a?1??1??? n???? 
{
    if(n==1)return 0;
    int a_1_1;
    int min[100];
    int i,j,k;
    
    for(i=0;i<n;i++)           //?????? 
        min[i]=a[i][0];
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
             if(min[i]>a[i][j])min[i]=a[i][j];
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
             a[i][j]-=min[i];
             
    for(i=0;i<n;i++)          //?????? 
        min[i]=a[0][i];
    for(j=0;j<n;j++)
        for(i=0;i<n;i++)
             if(min[j]>a[i][j])min[j]=a[i][j];
    for(j=0;j<n;j++)
        for(i=0;i<n;i++)
             a[i][j]-=min[j];
         
    a_1_1=a[1][1];         //??a?1??1? 
    
    for(i=1;i<n-1;i++)     //????????? 
        a[0][i]=a[0][i+1];
    for(j=1;j<n-1;j++)
        a[j][0]=a[j+1][0];
    for(i=1;i<n-1;i++)
        for(j=1;j<n-1;j++)
            a[i][j]=a[i+1][j+1];  
            
    return a_1_1+sum(a,n-1);   //??n-1? 
}
int main()
{
	int n,a[110][110],i,j,x,min=10000,sum=0,k;
	int (*p)[110]=a;
	cin>>x;
for (k=1;k<=x;k++){sum=0;
	for (i=1;i<=x;i++)
	 for (j=1;j<=x;j++)
	  cin>>*(*(p+i)+j);
for (n=x;n>=2;n--)
{
	for (i=1;i<=n;i++)
	{
		min=100000;
	 for (j=1;j<=n;j++)
	 {
		 if (*(*(p+i)+j)<min)
			 min=*(*(p+i)+j);
	 }
	 for (j=1;j<=n;j++)
		 *(*(p+i)+j)=*(*(p+i)+j)-min;
	}
	 for (j=1;j<=n;j++)
	 {
	 min=100000;
	 for (i=1;i<=n;i++)
	 {
		 if (*(*(p+i)+j)<min)
			 min=*(*(p+i)+j);
	  }
	  for (i=1;i<=n;i++)
		  *(*(p+i)+j)=*(*(p+i)+j)-min;
	 }
	 sum=sum+*(*(p+2)+2);
	 for (i=2;i<=n-1;i++)
	  for (j=1;j<=n;j++)
	  {
		  *(*(p+i)+j)=*(*(p+i+1)+j);
	  }
	 for (j=2;j<=n-1;j++)
	  for (i=1;i<=n;i++)
	  {
		  *(*(p+i)+j)=*(*(p+i)+j+1);
	  }
}
cout<<sum<<endl;
}
}
int main()
{
   int i,j,k,n,num,minx[101],miny[101];
   int a[101][101];
   cin>>num;
   const int number=num;
   while(num>0)
   {
    int sum=0;
   for(i=0;i<number;i++)
   for(j=0;j<number;j++)
   cin>>a[i][j];
   n=number;
   while(n>1){
   for(i=0;i<n;i++)
     {minx[i]=1000; miny[i]=1000;}
    for(i=0;i<n;i++)
     for(j=0;j<n;j++)
     { if(a[i][j]<minx[i]) minx[i]=a[i][j];}
     for(i=0;i<n;i++)
      for(k=0;k<n;k++)
     a[i][k]=a[i][k]-minx[i];
     for(j=0;j<n;j++)
         for(i=0;i<n;i++)
     { if(a[i][j]<miny[j]) miny[j]=a[i][j];}
     for(i=0;i<n;i++)
     for(k=0;k<n;k++)
     a[k][i]=a[k][i]-miny[i];
     sum+=a[1][1];
     for(i=1;i<n-1;i++)
     for(j=0;j<n;j++)
     a[i][j]=a[i+1][j];
     for(j=1;j<n-1;j++)
     for(i=0;i<n-1;i++)
     a[i][j]=a[i][j+1];
     n--;
   }
   cout<<sum<<endl;
   num--;
   }
   return 0;
}
/*
 * ?????????.cpp
 * Created on: 2012-11-28
 * Author:???
 */
int n,i,j,k,a[150][150],sum,min1[150];
int f(int size){
	if(size==1)return sum;
	for(i=0;i<size;i++){
		min1[i]=a[i][0];
		for(j=0;j<size;j++){
			if(a[i][j]<min1[i]){
				min1[i]=a[i][j];
			}
		}
	}
	for(i=0;i<size;i++){
		for(j=0;j<size;j++){
			a[i][j]=a[i][j]-min1[i];
		}
	}
	for(j=0;j<size;j++){
		min1[j]=a[0][j];
		for(i=0;i<size;i++){
			if(a[i][j]<min1[j]){
				min1[j]=a[i][j];
			}
		}
	}
	for(j=0;j<size;j++){
		for(i=0;i<size;i++){
			a[i][j]=a[i][j]-min1[j];
		}
	}
	sum=sum+a[1][1];
	for(i=1;i<size-1;i++){
		a[0][i]=a[0][i+1];
		a[i][0]=a[i+1][0];
		for(j=1;j<size-1;j++){
			a[i][j]=a[i+1][j+1];
		}
	}
	return f(size-1);
}

int main(){
	cin>>n;
	for(k=0;k<n;k++){
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				cin>>a[i][j];
			}
		}
		sum=0;
		cout<<f(n)<<endl;
	}
	return 0;
}