AC代码
#include<bits/stdc++.h>
using namespace std;
int main(void){
int num,n,i,j;
scanf("%d",&num);
for(j=1;j<=num;j++){
unordered_set<string> place;
unordered_set<string> arrive;
unordered_map<string,string> ap;
scanf("%d",&n);
string s,t;
for(i=1;i<=n;i++){
cin>>s>>t;
place.insert(s),place.insert(t);
arrive.insert(t);
ap[s]=t;
}
string tmp;
unordered_set<string>::iterator it;
for(it=place.begin();it!=place.end();it++){
if(arrive.count(*it)==0){
tmp=(*it);
}
}
printf("Case #%d:",j);
for(i=1;i<=n;i++){
cout<<" "<<tmp<<"-"<<ap[tmp];
tmp=ap[tmp];
}
cout<<endl;
}
return 0;
}