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毫秒