汉诺塔VII (!)

#include <iostream>
using namespace std;
bool juge(int n,int *A,int *B,int *C)
{
    if(n==0) return 1;
    if(B[0]&&B[0]==n)
        return 0;
    if(A[0]&&A[0]==n)
        return juge(n-1,++A,C,B);
    else if(C[0]&&C[0]==n)
        return juge(n-1,B,A,++C);
}
int main()
{
    int k,n;

    scanf("%d",&k);
    while(k--)
    {
        int l;
        scanf("%d",&l);
        scanf("%d",&n);
        int i,t[3][65];
        memset(t,0,sizeof(t));
        for(i=0;i<n;i++)
            scanf("%d",&t[0][i]);
        scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%d",&t[1][i]);
        scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%d",&t[2][i]);
        bool f=juge(l,t[0],t[1],t[2]);
        if(f) printf("true\n");
        else printf("false\n");
    }
    return 0;
}

 

posted @ 2013-09-19 15:50  Destino74  阅读(113)  评论(0编辑  收藏  举报