semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int a[100][1000][1000];
int main()
{
	int n,i,j,min,p,q,k,h,sum=0;
	cin>>n;
	for(k=1;k<=n;k++)                             /*??n???*/
	{
	    for(i=1;i<=n;i++)
	    {
		    for(j=1;j<=n;j++)
		    {
			    cin>>a[k][i][j];
		    }
	    }
	}
  for(p=1;p<=n;p++)                              /* ???????*/
  {
	  h=n;
	  for(q=1;q<=n-1;q++)                          /*???????*/
	  {
	  for(i=1;i<=h;i++)
	  {
		min=100000;
		for(j=1;j<=h;j++)
		{
			if(a[p][i][j]<min)
				min=a[p][i][j];
		}
		for(k=1;k<=h;k++)
		{
			a[p][i][k]=a[p][i][k]-min;
		} 
	  }                                            /*?????*/
	  for(j=1;j<=h;j++)
	  {
		min=100000;
		for(i=1;i<=h;i++)
		{
			if(a[p][i][j]<min)
				min=a[p][i][j];
		}
		for(k=1;k<=h;k++)
		{
			a[p][k][j]=a[p][k][j]-min;
		} 
	  }   
	  sum+=a[p][2][2];
	  for(i=1;i<=h;i++)
        a[p][2][i]=0;
	  for(j=1;j<=h;j++)
        a[p][j][2]=0;
	  for(i=3;i<=h;i++)
	  {
		for(j=1;j<=h;j++)
		{
		a[p][j][i-1]=a[p][j][i];
		}
	}
	for(i=3;i<=h;i++)
	{
		for(j=1;j<=h;j++)
		{
		a[p][i-1][j]=a[p][i][j];
		}
	}
	h-=1;
	  }
	 cout<<sum<<endl;
	 sum=0;
  }


return 0;
}
//?????????
//by.???

int f(int a[100][100],int n)                                   //??????
{
	int rmin[100],cmin[100];                                   //???????????????????????????
	int i,j,k,l;
	for(i=0;i<=n-1;i++)
	{
		rmin[i]=a[i][0];
		for(j=0;j<=n-1;j++)
		{
			if(a[i][j]<rmin[i])
			{
				rmin[i]=a[i][j];                              //?????????
			}
		}
	}
	for(k=0;k<=n-1;k++)
		for(l=0;l<=n-1;l++)
			a[k][l]-=rmin[k];                                 //???????????????
	for(i=0;i<=n-1;i++)
	{
		cmin[i]=a[0][i];
		for(j=0;j<=n-1;j++)
		{
			if(a[j][i]<cmin[i])
			{
				cmin[i]=a[j][i];                              //?????????
			}
		}
	}
	for(k=0;k<=n-1;k++)
		for(l=0;l<=n-1;l++)
			a[l][k]-=cmin[k];                                 //???????????????
	return 0;
}
int main()
{
	int n;
	cin>>n;                                                   //??n
	int i=1,sum[100]={0},t;
	while(i<=n)                                               //??n???,???????????
	{
		int a[100][100];
		int j,k,l,m,s,y;
		for(j=0;j<=n-1;j++)
		{
			for(k=0;k<=n-1;k++)
			{
				cin>>a[j][k];                                 //???????
			}
		}
		for(l=1;l<=n-1;l++)                                   //?????n-1?????
		{
			y=f(a,n-l+1);                                     //??
			sum[i]+=a[1][1];                                  //sum[i]?????a[1][1]?
			for(m=1;m<=n-l-1;m++)
			{
				for(s=0;s<=n-l;s++)
				{
					a[m][s]=a[m+1][s];                        //???
				}
			}				
			for(m=1;m<=n-l-1;m++)
			{
				for(s=0;s<=n-l-1;s++)
				{
					a[s][m]=a[s][m+1];                        //???
				}
			}	
		}
		i++;
	}
	for(t=1;t<=n;t++)
		cout<<sum[t]<<endl;                                   //?????????sum?
	return 0;
}
int main()
{
	int n, i, j, sum, num, (*p)[200], t, temp;
	int a[200][200];
	cin >> n;
	sum = 0;
	num = 0;
	p = a;
	for(t = 1; t <= n; t ++)
	{
		sum = 0;
		num = 0;
		for(i = 0; i < n; i ++)
		{
			for(j = 0; j < n; j ++)
			{
				cin >> a[i][j];
			}
		}
		while(num < n - 1)
		{
		for(i = 0; i < n - num; i ++)
		{
			temp = 1000;
			for(j = 0; j < n - num; j ++)
			{
				if(*(*(p + i) + j) < temp)
					temp = *(*(p + i) + j);
			}
			for(j = 0; j < n - num; j ++)
			{
				*(*(p + i) + j) = *(*(p + i) + j) - temp;
			}
		}
		for(j = 0; j < n - num; j ++)
		{
			temp = 1000;
			for(i = 0; i < n - num; i ++)
			{
				if(*(*(p + i) + j) < temp)
					temp = *(*(p + i) + j);
			}
			for(i = 0; i < n - num; i ++)
			{
				*(*(p + i) + j) = *(*(p + i) + j) - temp;
			}
		}
		sum = sum + *(*(p + 1) + 1);
		for(i = 2; i < n - num; i ++)
		{
			for(j = 0; j < n - num; j ++)
			{
				*(*(p + i - 1) + j) = *(*(p + i) + j);
			}
		}
		for(j = 2; j < n - num; j ++)
		{
			for(i = 0; i < n - num; i ++)
			{
				*(*(p + i) + j - 1) = *(*(p + i) + j);
			}
		}
		num ++;
		}
		cout << sum << endl;
	}
	return 0;
}
void guiling(int a[100][100],int n)
{
	int i,j,min;
	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];
		}
		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];
		}
		for(i=0;i<=n;i++)
			a[i][j]=a[i][j]-min;
	}
}
void shanchu(int a[100][100],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-1);j++)
		for(i=1;i<n;i++)
			a[i][j]=a[i+1][j];
}
int main()
{
	int a[100][100][100],i,j,k,sum,n;
	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]);
			}
	for(i=0;i<n;i++)
	{
		sum=0;
		for(j=n-1;j>=1;j--)
		{
			guiling(a[i],j);
			sum=sum+a[i][1][1];
			shanchu(a[i],j);
		}
		printf("%d\n",sum);
	}
}
//********************************
//*????????????   **
//*?????? 1200012964 **
//*???2012-11-19  **
//********************************

void fact(int n);                      //??????
int sum(int n);                        //????sum
int a[100][100]; 
int i = 0, j = 0;                      //??????
int main()
{
	int n;                             //n?????
	cin >> n;
	int 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;
}
void fact(int n)                       //????
{
	//?????????
	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;
	}
}

int sum(int n)                         //sum????
{
	fact(n);
	if (n == 2)
		return a[1][1];                //?n?2?????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 a[200][200], sum = 0;
void solve(int n)
{
	if (n != 1)
	{
	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] -= min;
		}
	}
	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] -= min;
		}
	}
	sum += a[1][1];
	for (int i = 1; i < n - 1; i ++)
	{
		a[i][0] = a[i + 1][0];
		a[0][i] = a[0][i + 1];
	}
	for (int i = 1; i < n - 1; i ++)
		for (int j = 1; j < n - 1; j ++)
		{
			a[i][j] = a[i + 1][j + 1];
		}
	solve(n - 1);
	}
}
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i ++)
	{
		for (int j = 0; j < n; j ++)
			for (int k = 0; k < n; k ++)
			{
				cin >> a[j][k];
			}
			solve(n);
			cout << sum << endl;
			sum = 0;
	}
	return 0;
}
int n,n1,p,q;
int matrix(int a[][101]);
int mi(int a[]);
void xiao(int a[][101]);
int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
{    n1=n;
	int a[101][101];
		for(p=0;p<n;p++)
  for(q=0;q<n;q++)
    cin>>a[p][q];
cout<<matrix(a)<<endl;
/*for(p=0;p<n;p++)
{for(q=0;q<n;q++)
cout<<a[p][q];cout<<endl;}*/
}
return 0;
}
int matrix(int a[][101])
{int i,j,sum=0;
	int smin[101],dmin[101],t[101][101];
	
for(i=0;i<n1;i++)
	smin[i]=mi(a[i]);
for(i=0;i<n1;i++)
  for(j=0;j<n1;j++)
	  if(smin[i]!=0)
  {a[i][j]-=smin[i];/*cout<<smin[i]<<endl;*/}
for(j=0;j<n1;j++)
		for(i=0;i<n1;i++)
			t[j][i]=a[i][j];
for(i=0;i<n1;i++)
	dmin[i]=mi(t[i]);
for(i=0;i<n1;i++)
  for(j=0;j<n1;j++)
	  if(dmin[i]!=0)
    a[j][i]-=dmin[i];
sum=a[1][1];
/*for(p=0;p<n1;p++)
{for(q=0;q<n1;q++)
cout<<a[p][q];cout<<endl;}*/if (n1==2)return a[1][1];
xiao(a);n1--;
sum=sum+matrix(a);
return sum;
}
int mi(int a[])
{
int i,min=a[0];
for(i=0;i<n1;i++)
  if(a[i]<=min)
	  min=a[i];
return min;
}
void xiao(int a[][101])
{
int i,j;
for(i=1;i<n1;i++)
   a[0][i]=a[0][i+1];
a[0][i]=0;
for(j=1;j<n1;j++)
{for(i=1;i<n1;i++)
a[j][i]=a[j+1][i+1];a[j][i]=0;}
for(i=1;i<n1;i++)
a[i][0]=a[i+1][0];


for(i=0;i<n1;i++)
a[n-1][i]=0;
/*for(p=0;p<n1;p++)
{for(q=0;q<n1;q++)
cout<<a[p][q];cout<<endl;}*/

}
int main()
{
    int a[100][100],n,sum;
    int i,j,k;
    cin>>n;
    for(k=0;k<n;k++)
    {
        for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        cin>>a[i][j];
        int f(int a[100][100],int n);
        sum=f(a,n);
        cout<<sum<<endl;
    }
    return 0;
}
int f(int a[100][100],int n)
{
    if(n==1) return 0;
    int i,j,k,min,sum=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];
        }
        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];
        }
        for(i=0;i<n;i++)
        {
            a[i][j]=a[i][j]-min;
        }
    }
    k=a[1][1];
    for(i=2;i<n;i++)
    {
        for(j=0;j<n;j++)
        a[i-1][j]=a[i][j];
    }
    for(j=2;j<n;j++)
    {
        for(i=0;i<(n-1);i++)
        a[i][j-1]=a[i][j];
    }
    n=n-1;
    sum=k+f(a,n);
    return (sum);
}
int main()
{
	int a[100][100];
	int n;
	int sum,Min;
	cin >> n;
	for (int num = 0; num < n; num++) //n???
	{
		sum = 0;
		for (int i = 0; i < n; i++)
			for (int j = 0; j < n; j++)
				cin >> a[i][j];
		for (int x = 1; x < n; x++) //n-1???
		{
			for (int i = 0; i < n; i++)//hang gui ling
			{
				Min = 10000;
				for (int col = 0; col < n; col++)
					if (a[i][col] >= 0)
						Min = Min < a[i][col] ? Min : a[i][col];
				for (int col = 0; col < n; col++)
					a[i][col] -= Min;
			}
			for (int i = 0; i < n; i++)//lie gui ling
			{
				Min = 10000;
				for (int row = 0; row < n; row++)
					if (a[row][i] >= 0)
						Min = Min < a[row][i] ? Min : a[row][i];
				for (int row = 0; row < n; row++)
					a[row][i] -= Min;
			}
			sum += a[x][x];
			for (int i = 0; i < n; i++)
				a[x][i] = -1;
			for (int i = 0; i < n; i++)
				a[i][x] = -1; //-1 dai biao mei you zhe yi hang
		}
		cout << sum << endl;
	}
	return 0;
}
void ccout(int n,int s[100]);
int main()
{
	int n,i,j,k,min,t,s[100],a[100][100][100];
	cin>>n;
	memset(s,0,sizeof(s));
	for(k=0;k<n;k++)
	{
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				cin>>a[i][j][k];
		for(t=0;t<n-1;t++)
		{
			for(i=0;i<n-t;i++)
			{
				min=1073741824;
				for(j=0;j<n-t;j++)
					if(a[i][j][k]<min)
						min=a[i][j][k];
				for(j=0;j<n-t;j++)
					a[i][j][k]-=min;
			}
			for(j=0;j<n-t;j++)
			{
				min=1073741824;
				for(i=0;i<n-t;i++)
					if(a[i][j][k]<min)
						min=a[i][j][k];
				for(i=0;i<n-t;i++)
					a[i][j][k]-=min;
			}
			s[k]+=a[1][1][k];
			for(i=0;i<n;i++)
				for(j=1;j<n-t-1;j++)
					a[i][j][k]=a[i][j+1][k];
			for(j=0;j<n;j++)
				for(i=1;i<n-t-1;i++)
					a[i][j][k]=a[i+1][j][k];
		}
	}
         ccout(n,s);
	return 0;
}
void ccout(int n,int s[100])
{
         int k;
	for(k=0;k<n;k++)
		cout<<s[k]<<endl;
}
int x[102][102];
int (*p)[102];
int n;
void f(int k)
{
	int min, i, j;
	for (i = 0; i < n - k; i ++)
	{
		min = 10000;
		for (j = 0; j < n - k; j ++)
			if (*(*(p + i) + j) < min)
				min = *(*(p + i) + j);
		for (j = 0; j < n - k; j ++)
			*(*(p + i) + j) -= min;
	}
	for (i = 0; i < n - k; i ++)
	{
		min = 10000;
		for (j = 0; j < n - k; j ++)
			if (*(*(p + j) + i) < min)
				min = *(*(p + j) + i);
		for (j = 0; j < n - k; j ++)
			*(*(p + j) + i) -= min;
	}
}
int main()
{
	int i, j, k, sum;
	p = x;
	cin >> n;
	for (int t = 0; t < n; t ++)
	{
		sum = 0;
		for (i = 0; i < n; i ++)
		for (j = 0; j < n; j ++)
			cin >> *(*(p + i) + j);
		for (k = 0; k < n - 1; k ++)
		{
			f(k);
			sum += *(*(p + 1) + 1);
			for (i = 2; i < n; i ++)
			{
				*(*(p + 0) + i - 1) = *(*(p + 0) + i);
				*(*(p + i - 1) + 0) = *(*(p + i) + 0);
			}
			for (i = 2; i < n; i ++)
				for (j = 2; j < n; j ++)
					*(*(p + i - 1) + j - 1) = *(*(p + i) + j);
		}
		cout << sum << endl;
	}
	return 0;
}
//******************************
//* ??? ?????????  *
//* ??? 1200012878          *
//* 11?25?                   *
//******************************
int a[100][100];
void guiling(int n)
{
int min, i, j;
	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] = 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] = a[j][i] - min;
	} // ?????
}
int sum(int n)
{
	int i, j;
	guiling(n); // ????
	int m;
    if (n == 2) 
	   return a[1][1]; // ???????????a[1][1]
	m = a[1][1];
	for (i = 1; i < n - 1; i++) // ?n??????n-1???
	{
		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 m + sum(n - 1); // ???????
}
int main()
{
	int n, i ,j, k;
	cin >> n;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			for (k = 0; k < n; k++)
			{
				cin >> a[j][k];
			}
		}
		cout << sum(n) << endl;
	}
	return 0;
}
//???? 
int a[100][100];  //?? 
int jieguo(int n) //???? 
{
    int min=10000;
    int p=0,i=0,j=0,sum=0;
    if(n==2) 
    {
        for(i=0;i<n;i++)    
        {
            min=10000;
            for(j=0;j<n;j++)
            {
                if(min>a[i][j])
                {    min=a[i][j];}
            }
            for(j=0;j<n;j++)
            {
                a[i][j]=a[i][j]-min;
            }
        }
        for(i=0;i<n;i++)   //????? 
        {
            min=10000;
            for(j=0;j<n;j++)
            {
                if(min>a[j][i])
                {    min=a[j][i];}
            }
            for(j=0;j<n;j++)
            {
                a[j][i]=a[j][i]-min;
            }  
        }
        return a[1][1];
    }
    else
    {
        for(i=0;i<n;i++)    //????? 
        {
            min=10000;
            for(j=0;j<n;j++)
            {
                if(min>a[i][j])
                {    min=a[i][j];}
            }
            for(j=0;j<n;j++)
            {    a[i][j]=a[i][j]-min;}
        }
        for(i=0;i<n;i++)   //????? 
        {
            min=10000;
            for(j=0;j<n;j++)
            {
                if(min>a[j][i])
                {    min=a[j][i];}
            }
            for(j=0;j<n;j++)
            {    a[j][i]=a[j][i]-min;}  
        }
        sum=a[1][1];  //?????? 
        for(i=1;i<n-1;i++)   //n???n-1 
        {
            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];}
        }
        return (sum+jieguo(n-1));
    }   
}
int main()
{
    int n=0,k=0,i=0,j=0;  
    for(i=0;i<100;i++)   
    {
        for(j=0;j<100;j++)
        {    a[i][j]=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];}
        }
        cout<<jieguo(n)<<endl;
    }
    return 0;
}
int main()
{
    int n, a[100][100], mini = INT_MAX, sum = 0;
    cin >> n;
    for (int c = 1; c <= n; c++)
    {
        for (int i = 0; i <= n - 1; i++)
        {
            for (int j = 0; j <= n - 1; j++)
            {
                cin >> a[i][j];
            }
        }
        for (int k = 1; k <= n - 1; k++)
        {
            for (int i = 0; i <= n - k; i++)
            {
                for (int j = 0; j <= n - k; j++)
                {
                    mini = min(mini, a[i][j]);
                }
                for (int l = 0; l <= n - k; l++)
                {
                    a[i][l] -= mini;
                }
                mini = INT_MAX;
            }
            for (int i = 0; i <= n - k; i++)
            {
                for (int j = 0; j <= n - k; j++)
                {
                    mini = min(mini, a[j][i]);
                }
                for (int l = 0; l <= n - k; l++)
                {
                    a[l][i] -= mini;
                }
                mini = INT_MAX;
            }
            sum += a[1][1];
            for (int i = 0; i <= n - k; i++)
            {
                for (int j = 1; j <= n - k - 1; j++)
                    a[i][j] = a[i][j + 1];
            }
            for (int j = 0; j <= n - k - 1; j++)
            {
                for (int i = 1; i <= n - k - 1; i++)
                    a[i][j] = a[i + 1][j];
            }
        }
        cout << sum << endl;
        sum = 0;
    }
    return 0;
}
int main() {
	int a[100][100], n, m, s = 0, i, j, x, y, t = 0;
	int (*p)[100];
	p=a;
	cin >> n;
	for (m = 1; m <= n; m++) {
		s = 0;
		t=0;
		for (i = 0; i < n; i++)
			for (j = 0; j < n; j++){
				cin >> (*(*(p+i)+j));//a[i][j];
			}

		for (y = n; y >1; y--) {


			for (i = 0; i < n - t; i++) {
				x = *(*(p+i));//a[i][0];
				for (j = 0; j < n - t; j++)
					if (x > *(*(p+i)+j))
						x = *(*(p+i)+j);
				for (j = 0; j < n - t; j++)
					*(*(p+i)+j) -= x;
			}



			for (j = 0; j < n - t; j++) {
				x = *(*(p)+j);
				for (i = 0; i < n - t; i++)
					if (x > *(*(p+i)+j))
						x = *(*(p+i)+j);
				for (i = 0; i < n - t; i++)
					*(*(p+i)+j) -= x;
			}


			s = s + *(*(p+1)+1);
			for (i = 0; i < n - t; i++) {
				for (j = 1; j < n - t-1; j++)
					*(*(p+i)+j) = *(*(p+i)+j+1);
			}
			for (i = 1; i < n - t-1; i++)
				for (j = 0; j < n - t; j++)
					*(*(p+i)+j) = *(*(p+i+1)+j);
			t++;
		}
		cout << s << endl;
	}
	return 0;
}
int n;
int w[150][150];
int m[150];
int main(){
cin>>n;
for(int _n=0;_n<n;_n++){
memset(w,0,sizeof(w));
int s=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>w[i][j];
for(int t=1;t<n;t++){

for(int i=0;i<n;i++){
if((i<t)&&i)continue;
m[i]=w[i][0];
for(int j=t;j<n;j++)if(w[i][j]<m[i])m[i]=w[i][j];
w[i][0]-=m[i];
for(int j=t;j<n;j++)w[i][j]-=m[i];
}
for(int j=0;j<n;j++){
if((j<t)&&j)continue;
m[j]=w[0][j];
for(int i=t;i<n;i++)if(w[i][j]<m[j])m[j]=w[i][j];
w[0][j]-=m[j];
for(int i=t;i<n;i++)w[i][j]-=m[j];
}
s+=w[t][t];
}

cout<<s<<endl;
}
return 0;
}
//********************************
//*  ????????????    *
//*  ??: ??                  *
//*  ???12?6?               *
//********************************
void min(int a[],int b);
int main()
{
	int n=0,i=0,sum =0;//sum??z[1][1]??
	cin>>n;
	const int p=n;//p????????n???
	for(i=0;i<p;i++,sum=0){
		int z[101][101]={0},z2[101]={0};
		int j=0,k=0;
		n=p;
		for(j=0;j<n;j++)
			for(k=0;k<n;k++)
				cin>>z[j][k];
				do{
					for(j=0;j<n;j++)
						min(z[j],n);//????
							for(j=0;j<n;j++){
								for(k=0;k<n;k++)
									z2[k]=z[k][j];//z2???????
										min(z2,n);//????????min??
								for(k=0;k<n;k++)
									z[k][j]=z2[k];//???z2?????z??
							}
								sum+=z[1][1];
								for(j=0;j<n;j++)
									for(k=1;k<n-1;k++)
										z[j][k]=z[j][k+1];//???????????????
								for(j=0;j<n;j++)
									for(k=1;k<n-1;k++)
										z[k][j]=z[k+1][j];
								n--;
				}
				while(n>1);
				cout<<sum<<endl;
	}
	return 0;
}
void min(int a[],int b)//??????????????????????
{
	int w=0,y=10000;
	for(w=0;w<b;w++)
	{
		if(a[w]<y)
			y=a[w];//?????
	}
		for(w=0;w<b;w++)
			a[w]=a[w]-y;
}
void rezero();
void dele();
int a[100][100], n, b, sum = 0;
int main()
{
	int i, j, k;
	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 = n;
		rezero();
		cout << sum << endl;
		sum = 0;
	}
	return 0;
}
void rezero()
{
	int i, j, k, min;
	for(k = 0; k < n - 1; k++)
	{
		for(i = 0; i < b; i++)
		{
			min = a[i][0];
			for(j = 0; j < b; j++)
			{
				if(a[i][j] <= min)
					min = a[i][j];
			}
			for(j = 0; j < b; j++)
			{
				a[i][j] -= min;
			}
		}
	for(i = 0; i < b; i++)
	{
		min = a[0][i];
		for(j = 0; j < b; j++)
		{
			if(a[j][i] <= min)
				min = a[j][i];
		}
		for(j = 0; j < b; j++)
		{
			a[j][i] -= min;
		}
	}
	dele();
	b -= 1;
	}
}
void dele()
{
	int i, j;
	sum += a[1][1];
	for(i = 0; i < b; i++)
		for(j = 1; j < b - 1; j++)
		{
			a[i][j] = a[i][j + 1];
		}
	for(j = 0; j < b - 1; j++)
		for(i = 1; i < b - 1; i++)
		{
			a[i][j] = a[i + 1][j];
		}	
}
/*
 * 006.cpp
 * name:
 *  Created on: 2011-12-31
 *      Author: 1100012729
 */
int main(){
	int n,k,i,j,p,ans;
	int a[101][101],g;
	cin>>n;
	k=n;

	while (k--)
	{
		ans=0;
		for (i=0;i<n;i++)
			for (j=0;j<n;j++)
				cin>>*(*(a+i)+j);
		p=n;
		while (p-->1){
		for (i=0;i<=p;i++)
		{
			g=*(*(a+i));
			for (j=0;j<=p;j++)
			{
				if (*(*(a+i)+j)<g)
				{
					g=*(*(a+i)+j);
				}
			}
			for  (j=0;j<=p;j++)
				*(*(a+i)+j)-=g;
		}
		for (j=0;j<=p;j++)
		{
			g=*(*(a)+j);
			for (i=0;i<=p;i++)
			{
				if (*(*(a+i)+j)<g)
				{
					g=*(*(a+i)+j);
				}
			}
			for  (i=0;i<=p;i++)
				*(*(a+i)+j)-=g;
		}
		ans+=*(*(a+1)+1);
		for(i=2;i<=p;i++)
			*(*(a+i-1))=*(*(a+i));
		for (j=2;j<=p;j++)
			*(*(a)+j-1)=*(*(a)+j);
		for (i=2;i<=p;i++)
			for (j=2;j<=p;j++)
				*(*(a+i-1)+j-1)=*(*(a+i)+j);
	}
		cout<<ans<<endl;
	}
	return 0;
}
int main()
{
	int i, j, k, l;
	int n, arr[101][101], temp[101][101];
	int cnt_a, cnt_b;
	int (*ptr)[101], ans, m;
	int (*ptr_t)[101];
	int mini;
	ptr = arr;
	ptr_t = temp;
	cin >> n;
	for(k = 0; k < n; ++k)
	{
		memset(arr, 0, sizeof(arr));
		ans = 0;
		for(i = 0; i < n; ++i)
			for(j = 0; j < n; ++j)
			{
				cin >> *(*(ptr + i) + j);
			}
		m = n;
		for(i = 0; i < n - 1; ++i)
		{
			mini = 2147483647;
			for(j = 0; j < m; ++j)
			{
				mini = 2147483647;
				for(l = 0; l < m; ++l)
				{
					if(*(*(ptr + j) + l) < mini)
						mini = *(*(ptr + j) + l);
				}
				for(l = 0; l < m; ++l)
				{
					*(*(ptr + j) + l) -= mini;
				}
			}
			mini = 2147483647;
			for(j = 0; j < m; ++j)
			{
				mini = 2147483647;
				for(l = 0; l < m; ++l)
				{
					if(*(*(ptr + l) + j) < mini)
						mini = *(*(ptr + l) + j);
				}
				for(l = 0; l < m; ++l)
				{
					*(*(ptr + l) + j) -= mini;
				}
			}
			ans += *(*(ptr + 1) + 1);
			cnt_a = 0;
			cnt_b = 0;
			for(j = 0; j < m; ++j)
			{
				cnt_b = 0;
				for(l = 0; l < m; ++l)
				{
					if(j == 1 || l == 1)
						continue;
					*(*(ptr_t + cnt_a) + cnt_b) = *(*(ptr + j) + l);
					cnt_b++;
				}
				if(j != 1)
					cnt_a++;
			}
			memset(arr, 0, sizeof(arr));
			for(j = 0; j < cnt_a; ++j)
				for(l = 0; l < cnt_b; ++l)
				{
					*(*(ptr + j) + l) = *(*(ptr_t + j) + l);
				}
			m--;
		}
		cout << ans << endl;
	}
	return 0;
}
//
//  main.cpp
//  square
//
//  Created by blues cookie on 13-1-12.
//  Copyright (c) 2013? blues cookie. All rights reserved.
//

int a[100][100];
int findmin(int c,int low,int n)
{
    int min;
    if(c==1)//?hang??
    {
        int i;min=a[low][0];
        for(i=0;i<n;i++)
        {
            if(a[low][i]<min) min=a[low][i];
        }
    }
    if(c==0)//min lie
    {
        int i;min=a[0][low];
        for(i=0;i<n;i++)
        {
            if(a[i][low]<min) min=a[i][low];
        }
    }
    return min;
}
int dec(int n,int sum)
{
    if(n==1) return sum;
    int i,j,k,min;
    for(i=0;i<n;i++)
    {
        min=findmin(1,i,n);
        for(j=0;j<n;j++) a[i][j]=a[i][j]-min;
    }
    for(i=0;i<n;i++)
    {
        min=findmin(0,i,n);
        for(j=0;j<n;j++) a[j][i]=a[j][i]-min;
    }//??????
    sum=sum+a[1][1];
    for(i=0;i<n;i++)
        for(j=1;j<n-1;j++)
        {
            a[j][i]=a[j+1][i];
        }
    for(i=0;i<n;i++)
        for(j=1;j<n-1;j++)
        {
            a[i][j]=a[i][j+1];
        }
    return dec(n-1,sum);
}
int main(int argc, const char * argv[])
{
    int n;
    cin>>n;
    int i,j,s,t;
    for(int k=1;k<=n;k++)
    {
        for(i=0;i<n;i++)
            for(j=0;j<n;j++) cin>>a[i][j];//input suqare
        cout<<dec(n,0)<<endl;
    }
    return 0;

}
int n,m,mini;
int a[110][110];
void findmin(int x, int y, int dx, int dy) {
	if (x==m) return;
	if(y==m) return;
	if (a[x][y] < mini)
		mini = a[x][y];
	findmin(x+dx,y+dy,dx,dy);
	a[x][y]= a[x][y]-mini;
}
void kill() {
	int i, j;
	for(i=0;i<m;i++)
	for(j=1;j<m;j++)
	a[j][i] = a[j+1][i];
	for(i=0;i<m;i++)
	for(j=1; j<m; j++)
	a[i][j] = a[i][j + 1];

}
int main() {
	int i, j, sum,k;
	cin>>n;
	for (k=0;k<n;k++)
	{
		for (i=0;i<n;i++)
			for (j=0;j<n;j++)
				cin >> a[i][j];
		for (sum=0,m=n;m>=1;m--)
		{
			for (i=0;i<2*m;i++)
			{
				mini = 10000;
				findmin((i%m)*(1-i/m),(i%m)*(i/m),i/m,1-i/m);
			}
			sum=sum+a[1][1];
			kill();
		}
		cout <<sum<<endl;
	}
}