数据量不大直接走暴力比较简单
#include<iostream>
#include<cstdlib>
#include<sstream>
#include<cstdio>
#include<stack>
#include<cstdio>
#include<map>
#include<set>
#include<queue>
#include<cstring>
#include<cmath>
#include<vector>
#include<math.h>
#include<algorithm>
#define REP(i,a,b) for(int i=a;i<b;i++)
#define REPP(i,a,b) for(int i=a;i<=b;i++)
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn=10005;
int T;int n;
//初始化
int fa[maxn],flag[maxn];
void init()
{
REPP(i,1,n){ fa[i]=i;}
memset(flag,0,sizeof(flag));
}
//暴力求解LCA
int LCA(int u,int v)
{
if(u==v) return u;
flag[u]=1;
while(fa[u]!=u)
{
u=fa[u]; flag[u]=1;
}
if(flag[v])return v;
while(fa[v]!=v)
{
v=fa[v];
if(flag[v]) return v;
}
}
int x,y;
int u,v;
int main()
{
scanf("%d",&T);
while(T--)
{
init();
scanf("%d",&n);
REP(i,1,n)
{
scanf("%d%d",&x,&y);
fa[y]=x;
}
scanf("%d%d",&u,&v);
cout<<LCA(u,v)<<endl;
}
return 0;
}