bool sear(posi orig,posi mid, posi dest,int bottom) { if(bottom==0) return true; if(pans[bottom]==mid) return false; else { if(pans[bottom]==orig) return sear(orig,dest,mid,bottom-1); else return sear(mid,orig,dest,bottom-1); } }
int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif char line[100]; char tmp[20]; cnt=1; init(); while(gets(line) && strlen(line)) { sscanf(line,"%s %s",str[cnt],tmp); insert(tmp,cnt); cnt++; } while(gets(line)) { int p=sear(line); if(p!=0) printf("%s\n",str[p]); else printf("eh\n"); } return 0; }
int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif char a[MAXM],b[MAXM]; int cnt=0; init(); memset(p,-1,sizeof(p)); memset(d,0,sizeof(d)); while(scanf("%s %s",a,b)==2) { int pa=sear(a),pb=sear(b); if(pa==-1) { insert(a,cnt); pa=cnt++; } if(pb==-1) { insert(b,cnt); pb=cnt++; } unit(pa,pb); d[pa]++; d[pb]++; } bool flag=true; int p0=find(0); for(int i=1; i<cnt && flag; i++) { if(p0!=find(i)) flag=false; } int cnte=0; for(int i=0; i<cnt && flag; i++) { if(d[i]%2==1) cnte++; } if(flag && (cnte==0 || cnte==2)) printf("Possible\n"); else printf("Impossible\n"); return 0; }
int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif int t,n; scanf("%d",&t); while(t--) { init(); scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s",str[i]); insert(str[i],i+1); } bool flag=false; for(int i=0;i<n && !flag;i++) { int nLen=strlen(str[i]); for(int j=1;j<nLen;j++) { char tmp[20]; strcpy(tmp,str[i]); tmp[j]=0; if(sear(tmp)!=0) { flag=true; break; } } } if(!flag) printf("YES\n"); else printf("NO\n"); } return 0; }
int main() { int t; while(scanf("%d",&t)!=EOF) { int n,a,tem; for(int j=0; j<t; j++) { scanf("%d",&n); scanf("%d",&a); for(int i=0; i<a; i++) { scanf("%d",&tem); pans[tem]=A; } scanf("%d",&a); for(int i=0; i<a; i++) { scanf("%d",&tem); pans[tem]=B; } scanf("%d",&a); for(int i=0; i<a; i++) { scanf("%d",&tem); pans[tem]=C; } if(sear(A,B,C,n)) { printf("true\n"); } else printf("false\n"); } } }