因为输入问题结果调了半天,因为中间有字符,注意用scanf时把空格表示出来
#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <queue>
using namespace std;
const int maxn=100010;
struct Link{
char data;
int addr;
int next;
}node[maxn];
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
int first1,first2,data,n;
scanf("%d%d%d",&first1,&first2,&n);
int add;
for(int i=0;i<n;i++){
scanf("%d",&add);
scanf(" %c %d",&node[add].data,&node[add].next);
node[add].addr=add;
}
int p1=first1,p2=first2;
int len1=0;
while(p1!=-1){
len1++;
p1=node[p1].next;
}
int len2=0;
while(p2!=-1){
len2++;
p2=node[p2].next;
}
for(p1=first1;len1>len2;p1=node[p1].next) len1--;
for(p2=first2;len2>len1;p2=node[p2].next) len2--;
while(p1!=p2){
p1=node[p1].next;
p2=node[p2].next;
}
if(p1!=-1) printf("%05d",p1);
else printf("-1");
return 0;
}