解题思路:供参考
注意事项:
参考代码:
#include <stdio.h>
int a[8][8];
//int b[8];
int n;
int m=10000;
int max()
{
int i,j,tmp,res=-1000;
for(j=0;j<n;j++)
{
tmp=0;
for(i=0;i<n;i++)
tmp +=a[i][j];
if(tmp>res) res=tmp;
}
return res;
}
void move(int i)
{
int k,j,tmp;
tmp=a[i][n-1];
for(j=n-1;j>0;j--)
a[i][j]=a[i][j-1];
a[i][0]=tmp;
}
void glt(int i){
if(i>0){
int j;
for(j=0;j<n;j++){
glt(i-1);
move(i);
int t =max();
// printf("t=%d\n",t);
if(t<m){
m=t;
// printf("m=%d\n",m);
}
}
}
}
int main()
{
int i,j,k;
while(scanf("%d",&n)&&n>0)
{
m=10000;
if(n==-1 || n>7){
break;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
if(a[i][j] < -104 || a[i][j] > 104){
break;
}
}
}
glt(n-1);
printf("%d\n",m);
}
return 0;
}
0.0分
0 人评分