1 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct{ int x; }tr[114]; long long n,s; long long a1,a2,q1,q2,t1,t2; vector<long long> v[514]; inline void qs(int i){ s++; if(tr[i].x!=0) qs(tr[i].x); } inline int sq(int i){ if(t2==t1) return i; t2--; return sq(tr[i].x); } inline int fa(int i,int j){ if(tr[i].x==tr[j].x) return tr[i].x; if(tr[i].x!=0&&tr[j].x!=0) return fa(tr[i].x,tr[j].x); } int main(){ cin>>a1>>a2>>n; for(int i=1;i<=n;i++){ cin>>q1>>q2; tr[q1].x=q2; } qs(a1); t1=s; s=0; qs(a2); t2=s; if(t1>t2) swap(t1,t2),swap(a1,a2); a2=sq(a2); if(a1==a2) cout<<a1; else cout<<fa(a1,a2); }
- 1
信息
- ID
- 198
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 52
- 已通过
- 26
- 上传者