点击查看代码
#include <bits/stdc++.h>
using namespace std;
vector<int>a[100005];
int f[100005],g[100005],ans;
void dp(int n1,int fa)
{
f[n1]=g[n1]=0;
for(int i=0;i<a[n1].size();i++)
{
if(a[n1][i]!=fa)
{
dp(a[n1][i],n1);
g[n1]=max(g[n1],f[n1]+f[a[n1][i]]+1);
f[n1]=max(f[a[n1][i]]+1,f[n1]);
}
}
ans=max(ans,g[n1]);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin>>T;
while(T--)
{
int n,s,r1,r2;
cin>>n>>s>>r1>>r2;
for(int i=1;i<=n;i++)
{
a[i].clear();
}
for(int i=1;i<n;i++)
{
int u,v;
cin>>u>>v;
a[u].push_back(v);
a[v].push_back(u);
}
ans=0;
dp(1,0);
if(2*r1>=ans)
{
cout<<"Kangaroo_Splay"<<endl;
}
else if(2*r1>=r2)
{
cout<<"Kangaroo_Splay"<<endl;
}
else
{
cout<<"General_Kangaroo"<<endl;
}
}
return 0;
}