semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int min(int a,int b)//????
{
	return a<b?a:b;
}

int f(int n,int number[100][100])//???????
{
		int num[100],m=10000;//num??????????
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				m=min(m,number[i][j]);
			}
			num[i]=m;
			m=10000;
		}
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<n;j++)
			{
				number[i][j]=number[i][j]-num[i];
			}
		}
		//???
		m=10000;
		for(int j=0;j<n;j++)
		{
			for(int i=0;i<n;i++)
			{
				m=min(m,number[i][j]);
			}
			num[j]=m;
			m=10000;
		}
		for(int j=0;j<n;j++)
		{
			for(int i=0;i<n;i++)
			{
				number[i][j]=number[i][j]-num[j];
			}
		}
	//???
        if(n==2)
	//???2*2???,????[1][1]
	    return number[1][1];
	    else
	    {
		 int sum;
         sum=number[1][1];
		 for(int j=0;j<n;j++)//??????? 
		 {
		   	for(int i=1;i<n-1;i++)
			{
				number[i][j]=number[i+1][j];
			}
         }
		 for(int i=0;i<n;i++)
		 {
			for(int j=1;j<n-1;j++)
			{
				number[i][j]=number[i][j+1];
			}
		 }
		 return sum+f(n-1,number);
      }
}

int main()
{
	int n,sum=0;
	cin>>n;
	int n1=n;
	while(n--)
	{
		int number[100][100];
		for(int i=0;i<n1;i++)
		{
			for(int j=0;j<n1;j++)
			{
				cin>>number[i][j];
			}
		}
		int sum=f(n1,number);
		cout<<sum<<endl;
	}
	return 0;
}
int main()
{
    int a[104][104][104],n;
    int i,j,t,k,m,s;
    cin>>n;
    for(t=1;t<=n;t++)
    {
        s=0;
        for(i=1;i<=n;i++)
        for(j=1;j<=n;j++) cin>>a[i][j][0];
        for(k=1;k<n;k++)//k ci cao zuo
        {
            for(i=1;i<=n-k+1;i++)
            {
                m=100000;
                for(j=1;j<=n-k+1;j++)
                if(a[i][j][k-1]<m) m=a[i][j][k-1];
                for(j=1;j<=n-k+1;j++) a[i][j][k-1]-=m;
            }
            for(j=1;j<=n-k+1;j++)
            {
                m=100000;
                for(i=1;i<=n-k+1;i++)
                if(a[i][j][k-1]<m) m=a[i][j][k-1];
                for(i=1;i<=n-k+1;i++) a[i][j][k-1]-=m;
            }

            s+=a[2][2][k-1];

            for(i=1;i<=n-k+1;i++)
            for(j=1;j<=n-k+1;j++)
            {
                if(i==1&&j==1) a[i][j][k]=a[i][j][k-1];
                if(i==2||j==2) continue;
                if(i==1&&j>=3) a[i][j-1][k]=a[i][j][k-1];
                if(j==1&&i>=3) a[i-1][j][k]=a[i][j][k-1];
                if(i>=3&&j>=3) a[i-1][j-1][k]=a[i][j][k-1];
            }
        }
        cout<<s<<endl;
    }
}
int main()
{
	int n,m,i,j,k,a[100][100],b[100],c[100];
	cin>>n;
	for(k=0;k<n;k++)
	{
		c[k]=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++)
			{
				b[i]=a[i][0];
				for(j=1;j<m;j++)
					if(b[i]>a[i][j])b[i]=a[i][j];
				for(j=0;j<m;j++)
					a[i][j]=a[i][j]-b[i];
			}
			for(i=0;i<m;i++)
			{
				b[i]=a[0][i];
				for(j=1;j<m;j++)
					if(b[i]>a[j][i])b[i]=a[j][i];
				for(j=0;j<m;j++)
					a[j][i]=a[j][i]-b[i];
			}
			c[k]+=a[1][1];
			for(i=1;i<m-1;i++)a[i][0]=a[i+1][0];
			for(j=1;j<m-1;j++)a[0][j]=a[0][j+1];
			for(i=1;i<m-1;i++)
				for(j=1;j<m-1;j++)
					a[i][j]=a[i+1][j+1];
		}
	}
	for(k=0;k<n;k++)
		cout<<c[k]<<endl;
	return 0;
}
void xiao(int a[100][100],int n)
{   int min,i,j;
	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];
		if(min>0)
		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=0;i<n;i++)
		if(a[i][j]<min)min=a[i][j];
		if(min>0)
	    for(i=0;i<n;i++)
	    a[i][j]=a[i][j]-min;
	}
}
void move(int a[100][100],int n)
  { int i,j;
  for(i=0;i<n;i++)
	  for(j=2;j<n;j++)
		  a[i][j-1]=a[i][j];
	  for(j=0;j<n;j++)
		  for(i=2;i<n;i++)
			  a[i-1][j]=a[i][j];
  }


int count(int a[100][100],int n,int s)
{   if(n==1) return(s);
    else {xiao(a,n);
	      s=s+a[1][1];
		  move(a,n);
	      return(count(a,n-1,s));
	}

}    
int main()
{
	int n,i,j,s,t,a[100][100];
	scanf("%d",&n);
	t=n;
	while(t>0)
	{	s=0;
	   for(i=0;i<n;i++)
	   for(j=0;j<n;j++)
	   scanf("%d",&a[i][j]);
	   printf("%d\n",count(a,n,s));
	   t--;
	}
}
int n;
int array[101][101];
int search_x(int k)
{
	int i,j;
	int t=1000;
	for(j=0;j<n;j++)
			if(*(*(array+0)+j)<t)
				t=*(*(array+0)+j);
		for(j=0;j<n;j++)
			*(*(array+0)+j)=*(*(array+0)+j)-t;

	for(i=k;i<n;i++)
	{	t=1000;
		for(j=0;j<n;j++)
			if(*(*(array+i)+j)<t)
				t=*(*(array+i)+j);
		for(j=0;j<n;j++)
			*(*(array+i)+j)=*(*(array+i)+j)-t;
	}
	return 0;
}
int search_y(int k)
{
	int i,j;
	int t=1000;
	for(i=0;i<n;i++)
			if(*(*(array+i)+0)<t)
				t=*(*(array+i)+0);
		for(i=0;i<n;i++)
			*(*(array+i)+0)=*(*(array+i)+0)-t;
	for(j=k;j<n;j++)
	{	t=1000;
		for(i=0;i<n;i++)
			if(*(*(array+i)+j)<t)
				t=*(*(array+i)+j);
		for(i=0;i<n;i++)
			*(*(array+i)+j)=*(*(array+i)+j)-t;
	}
	return 0;
}
int change(int k)
{
	int i,j;
	for(i=0;i<n;i++)
		*(*(array+i)+k)=1000;
	for(j=0;j<n;j++)
		*(*(array+k)+j)=1000;
	return 0;}
int main()
{
	
	
	int i,j,k,w;
	int num;
	cin>>n;
	for(w=0;w<n;w++)
	{
		num=0;
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			cin>>*(*(array+i)+j);
	
	for(k=0;k<n;k++)
	{
		search_x(k+1);
		search_y(k+1);
		num=num+*(*(array+k+1)+k+1);
		change(k+1);
	
	}
	
	cout<<num<<endl;}
	return 0;

}
int a[100][100];

void minus_row_col(int n)
{
	int row[100], col[100], min_row = 10000, min_col = 10000, i, j;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (a[i][j] < min_row)
				min_row = a[i][j];
		}
		row[i] = min_row;
		min_row = 10000;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			a[i][j] -= row[i];
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			if (a[j][i] < min_col)
				min_col = a[j][i];
		}
		col[i] = min_col;
		min_col = 10000;
	}
	for (i = 0; i < n; i++)
		for (j = 0; j < n; j++)
			a[j][i] -= col[i];
}

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

int main()
{
	int n, i, j, k, sum;
	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]);
		sum = 0;
		int num = n;
		while (num != 1)
		{
			minus_row_col(num);
			sum += a[1][1];
			delete_row_col(num);
			num--;
		}
		printf("%d\n", sum);
	}
	return 0;
}
int p[10000][10000];
int f(int x)
{
	int min;
	int k;
	if (x==2)
	{
		for(int i=0;i<=1;i++)
		if (p[i][0]>p[i][1]) {p[i][0]=p[i][0]-p[i][1];p[i][1]=0;}
		else{p[i][1]=p[i][1]-p[i][0];p[i][0]=0;}
		for(int i=0;i<=1;i++)if (p[0][i]>p[1][i]) {p[0][i]=p[0][i]-p[1][i];p[1][i]=0;}
		else{p[1][i]=p[1][i]-p[0][i];p[0][i]=0;}
		return p[1][1];

	}

	else
		{
		for(int i=0;i<x;i++){

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

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

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

				if (p[j][i]<min) min=p[j][i];
			for(int j=0;j<x;j++)
				p[j][i]=p[j][i]-min;
		}
	k=p[1][1];
	for(int i=0;i<x;i++)
		for(int j=1;j<x-1;j++)
			p[i][j]=p[i][j+1];
	for(int i=0;i<x-1;i++)
			for(int j=1;j<x-1;j++)
				p[j][i]=p[j+1][i];
	return k+f(x-1);

}
}
int main()
{
	int n;
	cin>>n;
	int s=1;
	for(s=1;s<=n;s++)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				cin>>p[i][j];
		cout<<f(n)<<endl;
	}
	return 0;
}
//********************************
//*????????????   **
//*?????? 1200012988 **
//*???2012.11.19  **
//********************************


int smaller(int, int);

int main()
{
    int n, a[101][101], i, j, k, min, count;
    cin >> n;
    count = n;                           //?count??n??
    for(k = 1; k <= count; k++)
    {
        int sum = 0;
        for(i = 0; i < n; i++)
        {
            for(j = 0; j < n; j++)
                cin >> a[i][j];
        }
        while(n > 1)
        {
            for(i = 0; i < n; i++)
            {
                min = a[i][0];
                for(j = 0; j < n; j++)
                {
                    if(min >= a[i][j])
                        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 = 0; i < n; i++)
                {
                    if(min >= a[i][j])
                        min = a[i][j];     //????????
                }
                for(i = 0; i < n; i++)
                    a[i][j] -= min;        //?????????????
            }
            sum += a[1][1];                //sum??????????a[1][1]
            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 - 1; j++)
            {
                for(i = 1; i < n - 1; i++)
                    a[i][j] = a[i + 1][j];
            }                              //??
            n--;
        }
        cout << sum <<endl;                //????????a[1][1]??
        n = count;                         //??n??
    }

    return 0;
}
int main()
{
	int n,m[105][105],s,min=10000,sum=0;
	cin>>n;
	s=n;
	for(int g=1;g<=n;g++)
	{
		sum=0;
		s=n;
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				cin>>m[i][j];
		for(int k=1;k<=n-1;k++)
		{
			for(int i=1;i<=s;i++)
			{
				min=10000;
				for(int j=1;j<=s;j++)
					if(m[i][j]<min)
						min=m[i][j];
				for(int j=1;j<=s;j++)
					m[i][j]=m[i][j]-min;
			}
			for(int i=1;i<=s;i++)
			{
				min=10000;
				for(int j=1;j<=s;j++)
					if(m[j][i]<min)
						min=m[j][i];
				for(int j=1;j<=s;j++)
					m[j][i]=m[j][i]-min;
			}
			sum=sum+m[2][2];
			for(int i=2;i<=s-1;i++)
			{
				for(int j=1;j<=s;j++)
				{
					m[i][j]=m[i+1][j];
				}
			}
			for(int i=2;i<=s-1;i++)
			{
				for(int j=1;j<=s-1;j++)
					m[j][i]=m[j][i+1];
			}
			s=s-1;
		}
		cout<<sum<<endl;
	}
	return 0;
}
int main ()
{
	int n=0; //??n 
	cin>>n;
	getchar();//??????n?????? 
	for(int i=0;i<n;i++)//??i??? 
	{
		int a[110][110];//???? 
		for (int j=0;j<n;j++)//?? 
			for (int k=0;k<n;k++)
				cin>>a[j][k];
		int sum=0;//????a[1][1]?? 
		for (int r=1;r<n;r++)//n*n???n-1??? 
		{

			for (int k=0;k<n-r+1;k++)//???n-r??????? 
			{ 
				int min=100000;//????????? 
				for (int j=0;j<n-r+1;j++)//???????????? 
				{
					if  (min>a[k][j])
						min=a[k][j];
				}
				for (int j=0;j<n-r+1;j++)
					a[k][j]=a[k][j]-min;//?????????????? 
			} 
			for (int j=0;j<n-r+1;j++)//???n-r??????? 
			{ 
				int min=10000000;//????????? 
				for (int k=0;k<n-r+1;k++)//???????????? 
				{
					if  (min>a[k][j]) 
						min=a[k][j];
				}
				for (int k=0;k<n-r+1;k++) 
					a[k][j]=a[k][j]-min;//?????????????? 
			} 
			sum=sum+a[1][1]; 
			for (int k=1;k<n-r;k++)//??????????????????????????? ???? 
			{
				for (int j=0;j<n-r+1;j++)
				{
					a[k][j]=a[k+1][j];
				}
			}
			for (int j=1;j<n-r;j++)//??????????????????????????? ???? 
			{
				for (int k=0;k<n-r;k++)
				{
					a[k][j]=a[k][j+1];
				}
			}


		}
		cout<<sum<<endl;
	}

	return 0; 
}
int array[101][101],n;
int ans=0;
int findm(int x,int y);
int findn(int x,int y);  //?????????
int main()
{
    int i,j,k;
    int a,b,m,minm,temp[101][101];
    cin>>n;
    for(k=0;k<n;++k)
    {
        ans=0;
        for(i=0;i<n;++i)
        {
            for(j=0;j<n;++j)
            {
                cin>>array[i][j];
            }
        }    //????
        m=n;
        while(m>1)  //?n-1?
        {
            for(i=0;i<m;++i)
            {
                minm=findm(i,m);
                for(j=0;j<m;++j)
                {
                    array[i][j]-=minm;
                }
            }
            for(i=0;i<m;++i)
            {
                minm=findn(i,m);
                for(j=0;j<m;++j)
                {
                    array[j][i]-=minm;
                }
            }         //??????????
            ans+=array[1][1];
            memset(temp,0,sizeof(temp));  
            a=0;
            b=0;    //???
            for(i=0;i<m;++i)
            {
                if(i==1) continue;
                for(j=0;j<m;++j)
                {
                    if(j==1) continue;
                    temp[a][b]=array[i][j];
                    b++;
                }
                a++;
                b=0;
            }   //?????????????
            memset(array,0,sizeof(array));
            for(i=0;i<a;++i)
            {
                for(j=0;j<a;++j)
                {
                    array[i][j]=temp[i][j];
                }
            }   //??????
            m--;
        }
        cout<<ans<<endl;   //????
    }
    return 0;
}
int findm(int x,int y)
{
     int i,j;
     int minn=1000000;
     for(i=0;i<y;++i) if(array[x][i]<minn) minn=array[x][i];
     return minn;
}
int findn(int x,int y)
{
     int i,j;
     int minn=1000000;
     for(i=0;i<y;++i) if(array[i][x]<minn) minn=array[i][x];
     return minn;
}
int main()
{
	int a[101][101], i, j, c, sum = 0, k, n, 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];
		sum = 0;
		for (c = n; c > 1; c--)
		{
			for (i = 0; i < c; i++)
			{
				min = 100000;
				for (j = 0; j < c; j++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (j = 0; j < c; j++)
					a[i][j] = a[i][j] - min;
			}
			for (j = 0; j < c; j++)
			{
				min = 100000;
				for (i = 0; i < c; i++)
				{
					if (a[i][j] < min)
						min = a[i][j];
				}
				for (i = 0; i < c; i++)
					a[i][j] = a[i][j] - min;
			}
			sum += a[1][1];
			for (i = 1; i < c - 1; i++)
			{
				for (j = 0; j < c; j++)
					a[i][j] = a[i + 1][j];
			}
			for (j = 1; j < c; j++)
				for (i = 0; i < c - 1; i++)
					a[i][j] = a[i][j + 1];
		}
		cout << sum << endl;
	}
	return 0;
}
int sum(int n);
int a[100][100];
int main()
{
	int n;
	cin >> n;
	int i = 0, j = 0, k = 0;
	for (k = 1; k <= n; k++)
	{
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++)
				cin >> a[i][j];
			cout << sum(n) << endl;
	}
	return 0;
}

int sum(int n)
{
	int i = 0, j = 0;
	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;
	}
	
	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);
}
int n,l,p;
int sum=0;
int a[105][105];

void g()
{
	int i,j;
	int t;
	for(i=1;i<=n-p;i++)
	{
		t=*(*(a+i)+1);
		for(j=1;j<=n-p;j++) if(*(*(a+i)+j)<t) t=*(*(a+i)+j);
		for(j=1;j<=n-p;j++) *(*(a+i)+j)-=t;
	}
	for(i=1;i<=n-p;i++)
	{
		t=*(*(a+1)+i);
		for(j=1;j<=n-p;j++) if(*(*(a+j)+i)<t) t=*(*(a+j)+i);
		for(j=1;j<=n-p;j++) *(*(a+j)+i)-=t;
	}
}

void f()
{
	int i,j;
	for(i=1;i<=n;i++)
	{
		for(j=2;j<n;j++) *(*(a+i)+j)=*(*(a+i)+j+1);
	}
	for(j=1;j<=n;j++) for(i=2;i<=n;i++) *(*(a+i)+j)=*(*(a+i+1)+j);
}
int main()
{
	int i,j;
	cin>>n;
	for(l=0;l<n;l++)
	{
		sum=0;
		for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>*(*(a+i)+j);
		for(p=0;p<n;p++) 
		{	
			
			g();
			sum+=(*(*(a+2)+2));
			f();
		}
		
		cout<<sum<<endl;
	}
	return 0;
}
int min(int x,int y)
{
	int z;
	if(x>y) z=y;
	else z=x;
	return(z);
}
int main()
{
	int n,m,k,i,j,a[101][101],s[101],sum;
	cin>>n;
	for(m=1;m<=n;m++)
	{
		sum=0;
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				cin>>a[i][j];
			}
		}
		for(k=1;k<=n-1;k++)
		{
			for(i=1;i<=n-k+1;i++)
			{
				s[i]=a[i][1];
				for(j=1;j<=n-k+1;j++)
					s[i]=min(a[i][j],s[i]);
			}
			for(i=1;i<=n-k+1;i++)
			{
				for(j=1;j<=n-k+1;j++)
					a[i][j]=a[i][j]-s[i];
			}
			for(j=1;j<=n-k+1;j++)
			{
				s[j]=a[1][j];
				for(i=1;i<=n-k+1;i++)
					s[j]=min(a[i][j],s[j]);
			}
			for(j=1;j<=n-k+1;j++)
			{
				for(i=1;i<=n-k+1;i++)
					a[i][j]=a[i][j]-s[j];
			}
			sum=sum+a[2][2];
			for(i=1;i<=n-k+1;i++)
			{
				if((n-k+1)>=3)
					for(j=3;j<=n-k+1;j++)
						a[i][j-1]=a[i][j];
				else break;
			}
			for(j=1;j<=n-k+1;j++)
			{
				if((n-k+1)>=3)
					for(i=3;i<=n-k+1;i++)
						a[i-1][j]=a[i][j];
				else break;
			}
		}
		printf("\n%d",sum);
	}
	return 0;
}
int main()
{

    int n,cnt,kobe;
    cin >> n;
    cnt=n;

    int (*p)[200],a[200][200]={0};
    while (cnt--)
    {
        int i,j,sum=0;
        long min;
        kobe=n;
        p=a;
        for (i=0; i<n;i++)
            for (j=0; j<n; j++)
                cin >> *(*(p+i)+j);
        for (int k=0; k<n-1; k++)
        {

            for (i=0; i<kobe;i++)
                {
                    min=999999999;
                    for (j=0; j<kobe; j++)
                        if (*(*(p+i)+j)<min)
                            min=*(*(p+i)+j);
                    for (j=0; j<kobe; j++)
                        *(*(p+i)+j)-=min;
                }
            for (j=0; j<kobe; j++)
            {
                    min=999999999;
                    for (i=0; i<kobe; i++)
                        if (*(*(p+i)+j)<min)
                            min=*(*(p+i)+j);
                    for (i=0; i<kobe; i++)
                        *(*(p+i)+j)-=min;
            }
            sum+=*(*(p+1)+1);
            for (i=1;i<kobe;i++)
                for (j=0; j<kobe; j++)
                    *(*(p+i)+j)=*(*(p+i+1)+j);
            for (j=1; j<kobe;j++)
                for (i=0;i<kobe;i++)
                    *(*(p+i)+j)=*(*(p+i)+j+1);
        kobe--;
        }
        cout << sum << endl;
        //for (i=0; i<n; i++)
            //for (j=0; j<n; j++)
                //cout << a[i][j]<<endl;

    }
    return 0;
}
int n,l,s=0;
int jz[100][100];
int f()
{
	int i,j,k,min=10000;
	if(n==1){
		cout<<s<<endl;
		s=0;
		n=l;
		return 0;
	}
	else
		{
		for(i=0;i<n;i++)
		{for(j=0;j<=n;j++)
		{if(j<n)
			{if(jz[i][j]<min)
			min=jz[i][j];}
		else{
			for(k=0;k<n;k++)
				jz[i][k]=jz[i][k]-min;
			min=10000;
		}}}
		for(i=0;i<n;i++)
				{for(j=0;j<=n;j++)
				{if(j<n)
					{if(jz[j][i]<min)
					min=jz[j][i];}
				else{
					for(k=0;k<n;k++)
						jz[k][i]=jz[k][i]-min;
					min=10000;//????
				}}}
		s=s+jz[1][1];
		for(i=0;i<n;i++)
			for(j=1;j<n-1;j++)
			jz[i][j]=jz[i][j+1];
		for(i=0;i<n;i++)
					for(j=1;j<n-1;j++)
					jz[j][i]=jz[j+1][i];//????
		n=n-1;
		f();
		}
}
int main()
{
	int i,j,k;
	cin>>n;
	l=n;
	for(i=1;i<=l;i++)
	{
		for(j=0;j<l;j++)
			for(k=0;k<l;k++)
				cin>>jz[j][k];
		f();
	}
return 0;
}
int num[100][100];
int n=0;

int xiaoling(int a);

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

int xiaoling(int a){
	int i, j, min, temp=0;
	if (a==1)
		return 0;
	for (i=0;i<a;i++){
		min=num[i][0];
		for (j=0;j<a;j++){
			min=(min>num[i][j])?num[i][j]:min;
		}
		if (min!=0){
			for (j=0;j<a;j++){
				num[i][j]=num[i][j]-min;
			}
		}
	}
	for (i=0;i<a;i++){
		min=num[0][i];
		for (j=0;j<a;j++){
			min=(min>num[j][i])?num[j][i]:min;
		}
		if (min!=0){
			for (j=0;j<a;j++){
				num[j][i]=num[j][i]-min;
			}
		}
	}
	temp=num[1][1];
	for (i=0;i<a;i++){
		for (j=1;j<a-1;j++){
			num[i][j]=num[i][j+1];
		}
	}
	for (i=0;i<a;i++){
		for (j=1;j<a-1;j++){
			num[j][i]=num[j+1][i];
		}
	}
	return temp+xiaoling(a-1);
}
int n;
int matrixx[110][110];
//?????? 
void Del(){
	for(int i=2;i<n;i++){
		for(int j=1;j<=n;j++){
			matrixx[i][j] = matrixx[i+1][j];
			}
		}
	for(int i=2;i<n;i++){
		for(int j=1;j<=n;j++){
			matrixx[j][i] = matrixx[j][i+1];
			}
		}
	return;
	}
int main(){
	cin>>n;
	int minnum;
	int sum;
	for(int s=1;s<=n;s++){
		sum=0;
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				cin>>matrixx[j][k];
				}
			}
		 for(int x;x<3000;x++){
				if(x==5){
					int y=0;
					y++;
					}
				}
		for(int i=1;i<n;i++){
			for(int j=1;j<=n;j++){
				for(int k=1;k<=n;k++){
					if(k==1) minnum = matrixx[j][k];
					else minnum = min(minnum,matrixx[j][k]);
					}
				for(int k=1;k<=n;k++){
					matrixx[j][k]-=minnum;
					}
				}
	 //???? 
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				if(k==1) minnum = matrixx[k][j];
				else minnum = min(minnum,matrixx[k][j]);
				}
			for(int k=1;k<=n;k++){
				matrixx[k][j]-=minnum;
				}
			}
			sum+=matrixx[2][2];
			Del();
			}
		cout<<sum<<endl;
		}
	
	return 0;
	}
/*
 * problem5.cpp
 *
 *  Created on: 2013-12-13
 *      Author: g199
 */
//???: ?????????
//????: ????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 str[101][101];
void input(int n)
{
	for (int i=0;i<n;i++)
		for (int j=0;j<n;j++)
			cin >> str[i][j];
}
void zero(int n)
{
		for (int i=0;i<n;i++)
		{
			int max = str[i][0];
		     for (int j=0;j<n;j++)
		    	 if (max >str[i][j])
		    		 max = str[i][j];
		     for (int j=0;j<n;j++)
		    	 str[i][j] -= max;
		}
		for (int i=0;i<n;i++)
		{
			 int max = str[0][i];
				 for (int j=0;j<n;j++)
				     if(max>str[j][i])
				    	 max = str[j][i];
				 for (int j=0;j<n;j++)
				     str[j][i] -= max;
		}
}
void del(int n)
{
	for (int i=1;i<n-1;i++)
	{
		str[0][i] = str[0][i+1];
		str[i][0] = str[i+1][0];
	}
	for (int i=1;i<n-1;i++)
		for (int j=1;j<n-1;j++)
			str[i][j] = str[i+1][j+1];
}
void cal(int n,int sum)
{
	if (n==2)
	{
		zero(2);
		sum += str[1][1];
	cout << sum << endl;
	return;
	}

	zero(n);
	sum += str[1][1];
	del(n);
	cal(n-1,sum);

}
int main()
{
    int n;
    cin >> n;
    for (int k=1;k<=n;k++)
    {
    	input(n);
    	cal(n,0);
    }
    return 0;
}
int sum; 
void guiling(int a[100][100],int p)
{
  int t,s;
  int min1,min2; 
  for(s=0;s<p;s++) 
  {
    min1=a[s][0];
    for(t=1;t<p;t++)
    if(a[s][t]< min1)min1=a[s][t];
    for(t=0;t<p;t++)
    a[s][t]=a[s][t]-min1; 
  }
  for(t=0;t<p;t++) 
  {
    min2=a[0][t];
    for(s=1;s<p;s++)
    if(a[s][t]< min2)min2=a[s][t];
    for(s=0;s<p;s++)
    a[s][t]=a[s][t]-min2; 
  }
  sum=sum+a[1][1]; 
}
void xiaojian(int a[100][100],int p)
{
  int i,j;
  for(i=0;i<p;i++) 
  for(j=1;j<p-1;j++)
  a[i][j]=a[i][j+1];
  for(j=0;j<p-1;j++) 
  for(i=1;i<p-1;i++)
  a[i][j]=a[i+1][j]; 
}   
int main()                                  
{
  int n;
  int a[100][100];
  int i,j,k,t;
  scanf("%d",&n);
  for(i=1 ; i<=n ; i++) 
  {
    sum=0;
    for(j=0;j<n;j++) 
    for(k=0;k<n;k++)
    scanf("%d",&a[j][k]);
    for(t=n ; t>=2 ; t--)
    {
      guiling(a,t);
      xiaojian(a,t);
    }
    printf("%d\n",sum);
  }
  return 0;
}
/*
 * 11-8.cpp
 *
 *  Created on: 2011-11-5
 *      Author: 11095
 */

int main()
{
	int n,i,j,k,t,N;
	cin>>n;
	int jz[n][n][n],min,sum=0;
	for(k=0;k<n;k++){
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				cin>>jz[k][i][j];
			}
		}
	}

	for(k=0;k<n;k++){
		N=n;
		sum=0;
		for(t=1;t<n;t++){
			for(i=0;i<N;i++){                                           //??
				min=jz[k][i][0];                                        //
				for(j=0;j<N;j++){                                       //
					if(jz[k][i][j]<min) min=jz[k][i][j];                //
				}                                                       //
				for(j=0;j<N;j++){                                       //
					jz[k][i][j]=jz[k][i][j]-min;                        //
				}                                                       //
			}                                                           //
			for(j=0;j<N;j++){                                           //
				min=jz[k][0][j];                                        //
				for(i=0;i<N;i++){                                       //
					if(jz[k][i][j]<min) min=jz[k][i][j];                //
				}                                                       //
				for(i=0;i<N;i++){                                       //
					jz[k][i][j]=jz[k][i][j]-min;                        //
				}                                                       //
			}                                                           //

			sum=sum+jz[k][1][1];

			for(i=1;i<N-1;i++){
				for(j=0;j<N;j++){
					jz[k][i][j]=jz[k][i+1][j];
				}
			}

			for(j=1;j<N-1;j++){
				for(i=0;i<N;i++){
					jz[k][i][j]=jz[k][i][j+1];
				}
			}
			N--;
		}
		cout<<sum<<endl;
	}
	return 0;
}