semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int n,i=0,j=0,sum=0,a[100][100],k=0;//????
	int t=0;
	cin>>n;
	for(k=0;k<n;k++)//??n???
	{
		sum=0;
		for(i=0;i<n;i++)//????????
			for(j=0;j<n;j++)
				cin>>a[i][j];
		for(int q=0;q<n-1;q++)//??q?
		{
			for(i=0;i<n-q;i++)//???????
			{
				t=a[i][0];
				for(j=0;j<n-q;j++)
				{
					if(a[i][j]<t)
						t=a[i][j];
				}
				for(j=0;j<n-q;j++)//???
					a[i][j]=a[i][j]-t;
			}
			for(j=0;j<n-q;j++)//???????
			{
				t=a[0][j];
				for(i=0;i<n-q;i++)
				{
					if(a[i][j]<t)
						t=a[i][j];
				}
				for(i=0;i<n-q;i++)
					a[i][j]=a[i][j]-t;//???
			}
			sum=sum+a[1][1];
			for(i=1;i<n-q-1;i++)//???
				for(j=0;j<n-q;j++)
					a[i][j]=a[i+1][j];
			for(j=1;j<n-q-1;j++)//???
				for(i=0;i<n-q;i++)
					a[i][j]=a[i][j+1];
		}
		cout<<sum<<endl;//????
	}
	return 0;
}
int main()
{
	int n,i,j,k;
	cin>>n;
	int n1=n;
while(n1)
{
	int a[n][n],sum=0;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			cin>>a[i][j];
	for(i=n;i>1;i--)
	{
		for(j=0;j<i;j++)
		{
			int min=a[j][0];
			for(k=1;k<i;k++)
				if(a[j][k]<min)
					min=a[j][k];
			for(k=0;k<i;k++)
				a[j][k]=a[j][k]-min;
		}
		for(j=0;j<i;j++)
		{
			int min=a[0][j];
			for(k=1;k<i;k++)
				if(a[k][j]<min)
					min=a[k][j];
			for(k=0;k<i;k++)
				a[k][j]=a[k][j]-min;

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

	}
	cout<<sum<<endl;
n1--;
}
}
int main()
{
int n,a[100][100][100],i,j,k,p=0,q=0,m,s[100],d;
scanf("%d",&n);
for(i=0;i<n;i++)
{
  for(j=0;j<n;j++)
   for(k=0;k<n;k++)
    scanf("%d",&a[i][j][k]);                
}
d=n;
for(i=0;i<d;i++)
{
  n=d;
  s[i]=0;
  while(n>1)
  {
    for(j=0;j<n;j++)
    {
      m=a[i][j][0];
      for(k=1;k<n;k++)
        {
          if(a[i][j][k]<m)
             m=a[i][j][k];
          if(a[i][j][k]==0)
            break;
        }
      for(k=0;k<n;k++)
       a[i][j][k]-=m;                
    }
    for(j=0;j<n;j++)
    {
      m=a[i][0][j];
      for(k=1;k<n;k++)
        {
          if(a[i][k][j]<m)
             m=a[i][k][j];
          if(a[i][k][j]==0)
            break;
        }
      for(k=0;k<n;k++)
       a[i][k][j]-=m;                
    }                
  s[i]+=a[i][1][1];
  for(k=0;k<n;k++)
    for(j=1;j<n-1;j++)
      a[i][k][j]=a[i][k][j+1];
  for(k=0;k<n;k++)
    for(j=1;j<n-1;j++)
      a[i][j][k]=a[i][j+1][k];
  n--;
  
  }  
}
for(i=0;i<d;i++)
printf("%d\n",s[i]);
return 0;       
}
int a[1000][1000];
int min1(int i,int k)
{
    int j,temp=10000;
    for(j=1;j<=k;j++)
    {
                     if(temp>a[i][j]) temp=a[i][j];
    }
    return temp;
}
int min2(int j,int k)
{
    int i,temp=10000;
    for(i=1;i<=k;i++)
    {
                     if(temp>a[i][j]) temp=a[i][j];
    }
    return temp;
}
main()
{
      int n,i,j,k,g,temp,ans;
      scanf("%d",&n);
      for(g=0;g<n;g++)
      {
                      for(i=1;i<=n;i++)
                      {
                                       for(j=1;j<=n;j++)
                                       {
                                                        scanf("%d",&a[i][j]);
                                       }
                      }
                      ans=0;
                      for(k=n;k>1;k--)
                      {
                                      for(i=1;i<=k;i++)
                                      {
                                                       temp=min1(i,k);
                                                       for(j=1;j<=k;j++)
                                                       {
                                                                        a[i][j]-=temp;
                                                       }
                                      }
                                      for(j=1;j<=k;j++)
                                      {
                                                       temp=min2(j,k);
                                                       for(i=1;i<=k;i++)
                                                       {
                                                                        a[i][j]-=temp;
                                                       }
                                      }
                                      ans+=a[2][2];
                                      for(i=2;i<k;i++)
                                      {
                                                      for(j=1;j<=k;j++)
                                                      {
                                                                       a[i][j]=a[i+1][j];
                                                      }
                                      }
                                      for(j=2;j<k;j++)
                                      {
                                                       for(i=1;i<k;i++)
                                                       {
                                                                       a[i][j]=a[i][j+1];
                                                       }
                                      }
                      }
                      printf("%d\n",ans);
      }
      
}
void minus (int a[100][100], int n)
{
	int i,j;
	for(i=j=0;i<n;i++)
	{
		int m=10000;
		for(j=0;j<n;j++)
			m=(m<a[i][j])?m:a[i][j];
		for(j=0;j<n;j++) a[i][j]-=m;
	}
	for(i=j=0;i<n;i++)
	{
		int m=10000;
		for(j=0;j<n;j++)
			m=(m<a[j][i])?m:a[j][i];
		for(j=0;j<n;j++) a[j][i]-=m;
	}
}

void pr(int a[100][100],int k)
{
    int i,j;
    for (i=0; i<k; i++)
    {
        for (j=0; j<k; j++)
        {
            printf("%d%c",a[i][j],(j+1==k)?'\n':',');
        }
    }
}

void lower(int a[100][100],int n)
{
	int i,j;
	for(i=j=0;i<n;i++)
		for(j=0;j<n;j++)
			if(i==0&&j==0) a[i][j]=a[i][j];
			else if(i==0&&j>0) a[i][j]=a[i][j+1];
			else if(i>0&&j==0) a[i][j]=a[i+1][j];
			else if(i>0&&j>0)  a[i][j]=a[i+1][j+1];
}

void fff(int n)
{
	int a[100][100]={0};
	int i=0,j,sum;

	for(i=j=0;i<n;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);
   for(i=0,sum=0;i<n;i++)
   {
		minus(a,n-i);
		sum+=a[1][1];
		lower(a,n-i);
   }
   printf("%d\n",sum);
}

void main()
{
	int i=0,n;
	scanf("%d",&n);
	while(i++<n)
		fff(n);
}
int Matrix[100][100];

int a[100]={0};

int b[100]={0};

int N=0;

void f(int n)
{
	memset(a,0,sizeof(a));
	for(int i=0;i<n;i++)
		{
			a[i]=Matrix[i][0];
			for(int k=1;k<n;k++)
				if(a[i]>Matrix[i][k])
					a[i]=Matrix[i][k];
		}
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				Matrix[i][j]-=a[i];
}
void g(int n)
{
	memset(b,0,sizeof(b));
	for(int i=0;i<n;i++)
		{
			b[i]=Matrix[0][i];
			for(int k=1;k<n;k++)
				if(b[i]>Matrix[k][i])
					b[i]=Matrix[k][i];
		}
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			Matrix[j][i]-=b[i];
}
int h(int n)
{
	int k=0;
	f(n);
	g(n);
	k=Matrix[1][1];
	if(n==2)
		return k;
	for(int i=1;i<n-1;i++)
	{
		Matrix[0][i]=Matrix[0][i+1];
		Matrix[i][0]=Matrix[i+1][0];
		for(int j=1;j<n-1;j++)
			Matrix[i][j]=Matrix[i+1][j+1];
	}
	return k+h(n-1);
}
int main()
{
	scanf("%d",&N);
	for(int j=0;j<N;j++)
	{
		for(int i=0;i<N;i++)
			for(int j=0;j<N;j++)
				scanf("%d",&Matrix[i][j]);
		printf("%d\n",h(N));
	}
	return 0;
}
/*????:?????????
 *??:???
 *??:2010/12/1
 *??:1000010449
*/
int a[100][100];
int change(int m)
{
	int i, j, k = 0, min, value;

	if (m == 1)
		return 0;

	for (i = 0; i < m; i++)	//????
	{
		min = a[i][0];
		for (j = 0; j < m; j++)	//????
			if (a[i][j] < min)
				min = a[i][j];
		for (j = 0; j < m; j++)
			a[i][j] -= min;
	}

	for (i = 0; i < m; i++)	//????
	{
		min = a[0][i];
		for (j = 0; j < m; j++)	//????
			if (a[j][i] < min)
				min = a[j][i];
		for (j = 0; j < m; j++)
			a[j][i] -= min;
	}

	value = a[1][1];	//??a[1][1]??
	//??
	for (i = 1; i < m - 1; i++)	//??
		for (j = 0; j < m; j++)	//??
			a[i][j] = a[i + 1][j];	//?????

	for (j = 1; j < m - 1; j++) //??
		for (i = 0; i < m - 1; i++) //??
			a[i][j] = a[i][j + 1];	//?????

	return value + change(m - 1);
}
int main()
{
	int n, i, j;
	
	cin >> n;

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

		cout << change(n) << endl;
	}
	return 0;
}
/*
 * xiaochu.cpp
 *?? - ?????????
 *  Created on: 2012-11-29
 *      Author: ???
 */
int  n,i, j, k;//??????
void f(int );//????
int a[100][100];
int s;
int main() {
	cin >> n;
	for (k = 1; k <= n; k++) {
		s=0;//???0
		for (i = 0; i < n; i++) {//????
			for (j = 0; j < n; j++) {
				cin >> a[i][j];
			}
		}
		f(n);//
	}
	return 0;
	}

void f(int m ) {
	for (i = 0; i < m; i++) {//????
		int 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++) {//????
		int 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;
		}
	}
	s = s + a[1][1];//???????a[1][1]???
	for(i=0;i<m;i++){//??a[1][1]??????
		for(j=1;j<m-1;j++){
			a[i][j]=a[i][j+1];
		}
	}
for(j=0;j<m;j++){
	for(i=1;i<m-1;i++){
		a[i][j]=a[i+1][j];
	}
	}
	if(m==2)//????????????
		{
		cout<<s<<endl;
		}
	else f(m-1);//??
	}
//============================================================================
// Name        : 2.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================


void putout(int a[N][N],int num)
{
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<num;j++)
			cout<<setw(3)<<a[i][j];
		cout<<endl;
	}
}

void cut1 (int a[N][N],int b,int num)//&#182;&#212;&#195;&#191;ò&#187;DD&#189;&#248;DD1éá&#227;
{
	int a1[N][N];
	memcpy(a1,a,N*N);
	for(int i=num-2;i>=0;i--)
		a1[b][i]=min(a1[b][i],a1[b][i+1]);
	for(int i=0;i<num;i++)
		a[b][i]-=a1[b][0];
}

void cut2 (int a[N][N],int b,int num)//&#182;&#212;&#195;&#191;ò&#187;áD&#189;&#248;DD1éá&#227;
{
	int a1[N][N];
	memcpy(a1,a,N*N);
	for(int i=num-2;i>=0;i--)
		a1[i][b]=min(a1[i][b],a1[i+1][b]);
	for(int i=0;i<num;i++)
		a[i][b]-=a1[0][b];
}

int remain(int a[N][N],int num,int out)//&#182;&#212;&#195;&#191;ò&#187;&#184;&#246;&#190;&#216;&#213;ó&#189;&#248;DD1éá&#227;oí&#207;&#251;&#188;&#245;?&#196;2ù×÷?&#172;2?&#188;&#198;&#203;&#227;out
{
	for(int i=0;i<num;i++)//&#182;&#212;&#195;&#191;ò&#187;DD1éá&#227;
		cut1(a,i,num);
	for(int i=0;i<num;i++)//&#182;&#212;&#195;&#191;ò&#187;áD1éá&#227;
		cut2(a,i,num);
	out=out+a[1][1];//à&#219;&#188;óa[1][1]
	for(int i=1;i<num-1;i++)//&#207;&#251;&#188;&#245;?ú&#182;tDD
		for(int j=0;j<num;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<num-1;i++)//&#207;&#251;&#188;&#245;?ú&#182;táD
		for(int j=0;j<num-1;j++)
			a[j][i]=a[j][i+1];
	num--;//&#190;&#216;&#213;óéùò&#187;&#189;×
	if(num==1)
		return out;
	else
		return remain(a,num,out);
}

int main() {
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int a[N][N];//&#214;&#216;&#214;&#195;a[200][200]
		memset(a,0,N*N);
		for(int i=0;i<n;i++)//ê&#228;è&#235;&#190;&#216;&#213;ó
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		int p=remain(a,n,0);//&#188;&#198;&#203;&#227;a[1][1]?&#196;oí
		cout<<p<<endl;
	}
	return 0;
}
int a[100][100];
int sum=0;
int minu(int x,int y)
{
	if(x<y)return x;
	else return y;
}
void del(int n)
{
	int i,m;
	int num[n];
	if(n==1){cout<<sum<<endl;return;}
	else{
	for(i=0;i<n;i++)
		{
		num[i]=a[i][0];
		for(m=0;m<n;m++)num[i]=minu(num[i],a[i][m]);
		if(num[i]!=0)
			for(m=0;m<n;m++)a[i][m]=a[i][m]-num[i];
		}								//???
	for(i=0;i<n;i++)
		{
		num[i]=a[0][i];
		for(m=0;m<n;m++)num[i]=minu(num[i],a[m][i]);
		if(num[i]!=0)
			for(m=0;m<n;m++)a[m][i]=a[m][i]-num[i];		//???
		}
	sum+=a[1][1];
	for(i=1;i<n-1;i++)
		for(m=0;m<n;m++)a[i][m]=a[i+1][m];
	for(i=1;i<n-1;i++)
		for(m=0;m<n;m++)a[m][i]=a[m][i+1];
	del(n-1);
	}
}
int main()
{
	int j,k;
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		sum=0;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>a[j][k];
	del(n);
	}
	return 0;
}
int main()
{
    int n;
    int sum=0;
    cin >> n;
    int i, j, k, h, p ,q;
    for (k=0;k<n;k++)
    {
        sum = 0;
        int board[105][105]={0};
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
                cin >> board[i][j];
            }
        }
        for (h=0;h<n;h++)
        {
            for (i=h;i<n;i++)
            {
                int min = board[i][h];
                for (j=h;j<n;j++)
                {
                     if (board[i][j] < min)
                     {
                         min = board[i][j];
                     }
                }
                for (j=h;j<n;j++)
                {
                    board[i][j]-=min;
                }
            }
            for (j=h;j<n;j++)
            {
                int min = board[h][j];
                for (i=h;i<n;i++)
                {
                    if (board[i][j] < min)
                    {
                        min = board[i][j];
                    }
                }
                for (i=h;i<n;i++)
                {
                     board[i][j]-=min;
                }
            }
            sum+=board[h+1][h+1];
            board[h+1][h+1]=board[h][h];
            for (p=h+2;p<n;p++)
            {
                board[h+1][p] = board[h][p];
            }
            for (p=h+2;p<n;p++)
            {
                board[p][h+1] = board[p][h];
            }
         }
         cout << sum << endl;
     }
     return 0;
}
int min(int *p,int n)
{
	int k,i;
	k=*p;
	p++;
	for(i=1;i<n;i++,p++)
	{
	 if(*p<k)
	 k=*p;
    }
	return(k);
}
main()
{
	int i,j,n,m,p,q,w,xiao,s;
	int a[101][101],b[101];
	scanf("%d",&n);
 for(w=0;w<n;w++)//???w???
 {
	
   for(i=0;i<n;i++)//input
   {b[i]=0;
    for(j=0;j<n;j++)
    {
	 scanf("%d",&a[i][j]);
    }
   }

   s=0;
   for(m=n;m>1;m--)//?????
   {
	for(i=0;i<m;i++)
	b[i]=0;
    for(i=0;i<m;i++)//?????
    {
		xiao=min(a[i],m);
		if(xiao==0)
		{
			for(j=0;j<m;j++)
			{
				if(a[i][j]==0)
				b[j]++;
            }
			continue;

        }
		else
		{
			for(j=0;j<m;j++)
			{
				a[i][j]-=xiao;
				if(a[i][j]==0)
				b[j]++;
            }
        }
    }
	for(i=0;i<m;i++)//?i?????
    {
		if(b[i]!=0)
		continue;
		else
		{
			xiao=a[0][i];
			for(j=1;j<m;j++)
			if(a[j][i]<xiao)
			xiao=a[j][i];
			for(j=0;j<m;j++)
				a[j][i]-=xiao;
        }
    }
	s+=a[1][1];
	for(i=0;i<m;i++)//???2?
	{
		if(i==1)continue;
		else
		{
			for(j=1;j<m-1;j++)
			a[i][j]=a[i][j+1];
        }
    }
	for(i=0;i<m-1;i++)//???2?
	for(j=1;j<m-1;j++)
	a[j][i]=a[j+1][i];


   }printf("%d\n",s);

 }

	
}
int n,i,j,min;

void XJ (int a[][100],int n)
{
	int b[100][100]={0};
	b[0][0]=a[0][0];
	for (i=1;i<n-1;i++)
	{
		b[0][i]=a[0][i+1];
		b[i][0]=a[i+1][0];
	}
	for (i=1;i<n-1;i++)
	{
		for (j=1;j<n-1;j++)
		{
			b[i][j]=a[i+1][j+1];
		}
	}
	for (i=0;i<n-1;i++)
	{
		for (j=0;j<n-1;j++)
		{
			a[i][j]=b[i][j];
		}
	}
}

int MIN (int a[][100],int n,int sum)
{
	if (n==1)
		 return sum;
	else 
	{
		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 (i=0;i<n;i++)
		{
			int 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]-=min;
		}
		sum+=a[1][1];
		XJ (a,n);
	    return MIN (a,n-1,sum);
	}
//	return sum;
}

int main ()
{
	int a[100][100]={0},k;
	cin >>n;
	int ii;
	int jj;
	for (ii=0;ii<n;ii++)
	{
		//sum=0;
		for (jj=0;jj<n;jj++)
		{
			for (k=0;k<n;k++)
			{
				cin >>a[jj][k];
			}
		}
		cout <<MIN(a,n,0)<<endl;
	}
	return 0;
}
int main()
{
	int n,i,a[100][100],j,k,min,number=0,m;
	cin>>n;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>*(*(a+j)+k);
			m=n;number=0;
	while(m!=1)
	{
		for(j=0;j<m;j++)
		{
			min=*(*(a+j)+0);
			for(k=1;k<m;k++)
			{
				min=(min>*(*(a+j)+k))?*(*(a+j)+k):min;
			}
			for(k=0;k<m;k++)
				*(*(a+j)+k)=*(*(a+j)+k)-min;
		}
		for(j=0;j<m;j++)
		{
			min=*(*(a)+j);
			for(k=1;k<m;k++)
			{
				min=(min>*(*(a+k)+j))?*(*(a+k)+j):min;
			}
			for(k=0;k<m;k++)
				*(*(a+k)+j)=*(*(a+k)+j)-min;
		}
		number=number+*(*(a+1)+1);
		for(j=1;j<m;j++)
			*(*(a+0)+j)=*(*(a+0)+j+1);
		for(j=1;j<m;j++)
			*(*(a+j)+0)=*(*(a+j+1)+0);
		for(j=2;j<m;j++)
			for(k=2;k<m;k++)
		*(*(a+k-1)+j-1)=*(*(a+k)+j);
			m=m-1;
	}
	cout<<number<<endl;
	}
	return 0;
}
main ()
{
     int m,t,n,i,j,temp,sum,count;
     scanf ("%d",&n);
     int a[101][101];
     m=n;
     for (;n>0;n--)
     {
         sum=0;
         for (i=1;i<=m;i++)
         {
             for (j=1;j<=m;j++)
             {scanf ("%d",&a[i][j]);}
         }
         t=m;
         for (;t>2;t--)
         {
             for (i=1;i<=t;i++)
             {
                          temp=a[i][1];
                          for (j=2;j<=t;j++)
                          if (temp>a[i][j]) {temp=a[i][j];}
                          for (j=1;j<=t;j++)
                          a[i][j]=a[i][j]-temp;
             }
             for (j=1;j<=t;j++)
              {
                  count=0;
                  for (i=1;i<=t;i++)
                  {
                      if (a[i][j]==0) {break;}
                      else count++;
                  }
                  if (count==t)
                  {
                               temp=a[1][j];
                               for (i=2;i<=t;i++)
                               if (temp>a[i][j]) {temp=a[i][j];}
                               for (i=1;i<=t;i++)
                               a[i][j]=a[i][j]-temp;
                  }
                  else {continue;}
              }
              sum=sum+a[2][2];
             for (i=2;i<=t-1;i++)
                 for (j=1;j<=t;j++)
                     a[i][j]=a[i+1][j];
             for (i=1;i<=t-1;i++)
                 for (j=2;j<=t-1;j++)
                     a[i][j]=a[i][j+1];
         }
       for (i=1;i<=2;i++)
                          {
                              temp=a[i][1];
                              for (j=2;j<=2;j++)
                              if (temp>a[i][j]) {temp=a[i][j];}
                              for (j=1;j<=2;j++)
                              a[i][j]=a[i][j]-temp;
                          }
       for (j=1;j<=2;j++)
                          {
                              temp=a[1][j];
                              for (i=2;i<=2;i++)
                              if (temp>a[i][j]) {temp=a[i][j];}
                              for (i=1;i<=2;i++)
                              a[i][j]=a[i][j]-temp;
                          }
       sum=sum+a[2][2];
       printf ("%d\n",sum);
       }
}
/*
 * m.cpp
 *
 *  Created on: 2013-12-19
 *      Author: de
 *????n*n????3<=n<=100???????????????n-1???????????????????1*1????
 *????????
    ???????????????????????????????????????????????????
    ??????????????????????????????????0?
    ????????????n*n????????????????????a[][]??????a[1][1]????????
    ???????(n-1)*(n-1)????
    ??????????(n-1)*(n-1)??????????????n-1?????? n*n??????????1*1????
    ????????a[1][1]????
 */

int a[100][100];
int i,j,n,sum=0;
void xiaojian(int times){
	for(i=0;i<times;i++)
		for(j=1;j<times-1;j++){
			a[i][j]=a[i][j+1];
		}
	for(j=0;j<times;j++)
		for(i=1;i<times-1;i++)
			a[i][j]=a[i+1][j];
    return ;
}
int F(int times){
	if(times==1)return sum;
	else {
		int J[times];
		for(i=0;i<times;i++)
		{
			J[i]=a[i][0];
		for(j=0;j<times-1;j++)
		{
			if(J[i]>a[i][j+1])
				J[i]=a[i][j+1];
		}
		if(J[i]>0)
		for(int t=0;t<times;t++)
			a[i][t]-=J[i];
	    }
		int I[times];
	    for(j=0;j<times;j++){
	    	I[j]=a[0][j];
			for(i=0;i<times-1;i++)
			{
				if(I[j]>a[i+1][j])
					I[j]=a[i+1][j];
			}
			if(I[j]>0)
			for(int t=0;t<times;t++)
				a[t][j]-=I[j];
		}
	sum+=a[1][1];
	xiaojian(times);
    return F(times-1);}
}
int main(){
	cin>>n;
	int t=0;
	while(t<n){
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			cin>>a[i][j];
	cout<<F(n)<<endl;
	sum=0;
	t++;
	}

	return 0;

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

for(j=0;j<n-t;j++)
{
min=a[k][0][j];
for(i=0;i<n-t;i++)
{if(a[k][i][j]<min)min=a[k][i][j];}
for(i=0;i<n-t;i++)
a[k][i][j]=a[k][i][j]-min;}
sum[k]=sum[k]+a[k][1][1];
for(i=0;i<n-t;i++)
for(j=1;j<n-1-t;j++)
{a[k][i][j]=a[k][i][j+1];}
for(j=0;j<n-1-t;j++)
for(i=1;i<n-1;i++)
a[k][i][j]=a[k][i+1][j];
t=t+1;}
cout<<sum[k]<<endl;}
return 0;
}
int main()
{
	int change(int a[100][100],int);
	int n,a[100][100],i,j,k;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				scanf("%d",&a[j][k]);
		printf("%d\n",change(a,n));
	}
}
int change(int a[100][100],int n)
{
	int i,j,s,b[100][100],f;
	for(i=0;i<n;i++)
	{
		s=a[i][0];
		for(j=0;j<n;j++)
			s=(s>a[i][j])?a[i][j]:s;
		for(j=0;j<n;j++)
			a[i][j]=a[i][j]-s;
	}
	for(i=0;i<n;i++)
	{
		s=a[0][i];
		for(j=0;j<n;j++)
			s=(s>a[j][i])?a[j][i]:s;
		for(j=0;j<n;j++)
			a[j][i]=a[j][i]-s;
	}
	f=a[1][1];
	if(n>2)
	{
	b[0][0]=a[0][0];
	for(i=2;i<n;i++)
	{
		b[0][i-1]=a[0][i];
		b[i-1][0]=a[i][0];
	}
	for(i=2;i<n;i++)
		for(j=2;j<n;j++)
			b[i-1][j-1]=a[i][j];
	f=f+change(b,n-1);
	}
	return f;
}
void diminish(int a[105][105],int stair)
{
	int i,j,min[105];
	for(i=1;i<=stair;i++)//??i???????
	{
		min[i]=a[i][1];
		for(j=1;j<=stair;j++)
		{
			if(a[i][j]<min[i])
			{
				min[i]=a[i][j];
			}
		}
		for(j=1;j<=stair;j++)
		{
			a[i][j]-=min[i];
		}
	}
	for(i=1;i<=stair;i++)//??i???????
	{
		min[i]=a[1][i];
		for(j=1;j<=stair;j++)
		{
			if(a[j][i]<min[i])
			{
				min[i]=a[j][i];
			}
		}
		for(j=1;j<=stair;j++)
		{
			a[j][i]-=min[i];
		}
	}
}
void lowerstair(int a[105][105],int stair)
{
	int i,j;
	for(i=2;i<=stair-1;i++)//???
	{
		for(j=1;j<=stair;j++)
		{
			a[i][j]=a[i+1][j];
		}
	}
	for(i=2;i<=stair-1;i++)//???
	{
		for(j=1;j<=stair;j++)
		{
			a[j][i]=a[j][i+1];
		}
	}
}
int deal(int a[105][105],int stair)
{
	int result=0;
	while(stair>=2)
	{
		diminish(a,stair);
		result+=a[2][2];
		lowerstair(a,stair);
		stair--;
	}
	return result;
}
void main()
{
	int n,i,j,k,stair,sum,a[105][105];
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		stair=n;
		for(j=1;j<=n;j++)
		{
			for(k=1;k<=n;k++)
			{
				scanf("%d",&a[j][k]);
			}
		}
		sum=deal(a,stair);
		printf("%d\n",sum);
	}
}
int main(){
	int n,r,a[101][101],min,sum=0;
	cin>>n;
	for (int k=1;k<=n;k++)
	{
		sum=0;
		r=n;
		for (int i=1;i<=n;i++)
		{
			for ( int j=1;j<=n;j++)
			{
				cin>>a[i][j];
			}
		}
		for (int l=1;l<=n-2;l++)
		{
		    for (int i=1;i<=r;i++)
		   {
			    min=a[i][1];
			    for (int j=1;j<=r;j++)
			   {
				  if (a[i][j]<min)min=a[i][j];
		    	}
			   for (int j=1;j<=r;j++)
			   {
			     	a[i][j]=a[i][j]-min;
			   }
			}
		       for (int i=1;i<=r;i++)
		      {
		     	min=a[1][i];
		       	for (int j=1;j<=r;j++)
		      	{
		     		if (a[j][i]<min)min=a[j][i];
		     	}
		    	  for (int j=1;j<=r;j++)
			     {
				   a[j][i]=a[j][i]-min;
			      }
			   }
		sum+=a[2][2];
		      for (int i=2;i<=r-1;i++)
             {
				 for (int j=1;j<=r;j++)
				 {
					 a[i][j]=a[i+1][j];
				 }
			  }
		      for (int i=2;i<=r-1;i++)
             {
				 for (int j=1;j<=r-1;j++)
				 {
					 a[j][i]=a[j][i+1];
				 }
			  }
		r--;
		}
		for (int i=1;i<=2;i++)
		{
			min=a[i][1];
			for (int j=1;j<=2;j++)
			{
				if (a[i][j]<min)min=a[i][j];
			}
			for (int j=1;j<=2;j++)
			{
				a[i][j]=a[i][j]-min;
			}
		}
		for (int i=1;i<=2;i++)
		{
			min=a[1][i];
			for (int j=1;j<=2;j++)
			{
				if (a[j][i]<min)min=a[j][i];
			}
			for (int j=1;j<=2;j++)
			{
				a[j][i]=a[j][i]-min;
			}
		}
		sum+=a[2][2];
		cout<<sum<<endl;
	}
}
int a[100][100],s=0;
void juzhen(int x)
{

	for(int i=0;i<x;i++)
	{
		int m=a[i][0];
		for(int j=1;j<x;j++)

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

				if (a[j][i]<m) m=a[j][i];
			for(int j=0;j<x;j++)
				a[j][i]=a[j][i]-m;
			}
	s=s+a[1][1];
	if (x==2) {cout<<s<<endl;return;}
	for(int i=1;i<x-1;i++)
		for(int j=0;j<x;j++)
			a[i][j]=a[i+1][j];
	for(int i=1;i<x-1;i++)
		for(int j=0;j<x-1;j++)
			a[j][i]=a[j][i+1];
	juzhen(x-1);

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

	for(int o=1;o<=n;o++)
	{
		s=0;
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				cin>>a[i][j];
		juzhen(n);

	}
}