HDU 1997 汉诺塔VII

题解参考博客:

http://blog.csdn.net/hjd_love_zzt/article/details/9897281

#include <cstdio>
int n,ns,n2,a[65],yes;  
int main(){  
    int cas;  
    scanf("%d",&cas);  
    while(cas--){   
        scanf("%d",&n);  
        for(int i=1;i<=3;i++){  
            scanf("%d",&ns);  
            for(int j=1;j<=ns;j++){  
                scanf("%d",&n2);  
                a[n2]=i;  
            }     
        }   
        yes=1;  
        int sor=1,cant=2,des=3,t;
        for(int i=n;i>=1;i--){  
            if(a[i]==cant){yes=0;break;}  
            else if(a[i]==des)t=sor,sor=cant,cant=t;  
            else if(a[i]==sor)t=des,des=cant,cant=t;   
        }  
          
        if(yes)printf("true\n");  
        else printf("false\n");   
    }  
    return 0;  
} 

 

 

 

posted @ 2014-01-15 16:09  forever97  阅读(224)  评论(0编辑  收藏  举报