PersonalCorpus 版 (精华区)
1233975 Big Guava ... 10017 Accepted (P.E.)
0:00.057 64 2002/11/13 10:34:53.200
int n,t;
bool ok;
int c[3][260], top[3];
void print()
{
int i,j;
printf("\n");
for (i=0;i<3;i++) {
printf("%c=> ",(char)i+65);
for (j=0;j<=top[i];j++) printf(" %d",c[i][j]);
// if (top[i]<0) printf(" ");
printf("\n");
}
}
void moveone(int a, int b)
{
if (ok) return;
print();
top[b]++;
c[b][top[b]]=c[a][top[a]];
top[a]--;
t--;
if (t==0) ok=true;
}
void moveto(int a, int b, int num)
{
if (ok) return;
if (num==1) moveone(a,b);
else {
moveto(a,3-a-b,num-1);
moveone(a,b);
moveto(3-a-b,b,num-1);
}
}
void main()
{
#ifndef ONLINE_JUDGE
freopen("k:\\uva\\i10017","r",stdin);
freopen("k:\\uva\\o10017","w",stdout);
#endif
int i,j,k=0;
while (1) {
scanf("%d%d\n",&n,&t);
if ((n==0)&&(t==0)) break; else k++;
if (k>1) printf("\n");
printf("Problem #%d\n\n",k);
for (i=n;i>0;i--) c[0][n-i]=i;
top[0]=n-1; top[1]=top[2]=-1;
ok=false;
if (t>0) moveto(0,2,n);
print();
}
}
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.151毫秒