OJ题目 : 猛戳~~
AC_CODE
#define Max_N 1008
int N , K ;
vector<int> List[Max_N];
vector<int> ans;
int dfs(int u, int father)
{
int i , v;
for(i = 0;i < List[u].size();i++)
{
v = List[u][i];
if(v == father)
continue;
if(!dfs(v , u))
{
if(father == -1)
ans.push_back(v);
return 1;
}
}
return 0;
}
int main()
{
while(scanf("%d%d" ,&N , &K) != EOF)
{
int u , v;
for(int i = 1;i < N;i++) List[i].clear();
for(int i = 1;i < N;i++)
{
scanf("%d%d",&u , &v);
List[u].push_back(v);
List[v].push_back(u);
}
ans.clear();
if(dfs(K , -1))
{
sort(ans.begin() , ans.end());
printf("First player wins flying to airport %d\n",ans[0]);
}
else
printf("First player loses\n");
}
return 0;
}