#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
struct Node
{
char data;
int next;
}node[100005];
int main()
{
int head1, head2, n;
cin >> head1 >> head2 >> n;
if (head1 == -1 || head2 == -1) // 这个1分测试点太贱了,快把人搞崩溃
{
printf("-1\n");
return 0;
}
int cur_addr;
char data;
int next;
for (int i = 0; i < n; i++)
{
scanf("%d %c %d", &cur_addr, &data, &next);
// cin >> cur_addr >> data >> next;
node[cur_addr].data = data;
node[cur_addr].next = next;
}
int p1 = head1, p2 = head2;
int len1 = 0, len2 = 0;
while (p1 != -1)
{
len1++;
p1 = node[p1].next;
}
while (p2 != -1)
{
len2++;
p2 = node[p2].next;
}
p1 = head1, p2 = head2;
int diff;
if (len1 > len2)
{
diff = len1 - len2;
while (diff--)
p1 = node[p1].next;
}
else if (len1 < len2)
{
diff = len2 - len1;
while (diff--)
p2 = node[p2].next;
}
if (p1 == p2)
printf("%05d\n", p1);
else
{
int next1 = node[p1].next;
int next2 = node[p2].next;
while (next1 != next2)
{
p1 = next1;
next1 = node[p1].next;
p2 = next2;
next2 = node[p2].next;
}
if (next1 == -1)
{
if (p1 == p2)
printf("%05d\n", p1);
else
printf("-1\n");
}
else
printf("%05d\n", next1);
}
return 0;
}
PAT (Advanced) 1032. Sharing (25)
最新推荐文章于 2022-05-05 19:26:29 发布