汉诺塔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; }