甲級pat-1032
阿新 • • 發佈:2019-02-05
#include<cstdio> #include<vector> using namespace std; const int maxn=100001; int hashTable[maxn]={0}; struct Node{ int address; char data; int next; }node[maxn]; int main(){ bool flag=false; int st1,st2,n,address,next; int arr1[maxn],arr2[maxn]; char s; scanf("%d %d %d",&st1,&st2,&n); for(int i=0;i<n;i++){ scanf("%d %c %d",&address,&s,&next); node[address].address=address; node[address].data=s; node[address].next=next; } int start1=st1,start2=st2,num; while(start1!=-1){ hashTable[node[start1].address]=1; start1=node[start1].next; } while(start2!=-1){ if(hashTable[node[start2].address]==1){ num=node[start2].address; flag=true; break; } start2=node[start2].next; } if(flag==true) printf("%05d\n",num); else printf("-1\n"); return 0; }