HDU 1997 漢諾塔VII

題解參考博客:spa

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

#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;  
} 
相關文章
相關標籤/搜索