#include <iostream>
#include <cstring>
#include <map>
using namespace std;
int main()
{
int n;
cin >> n;
map<string, int> degree;
while(n>0){
string str1, str2;
cin >> str1 >> str2;
if(degree.count(str1) == 0){
degree[str1] = 1;
}
else{
degree[str1]++;
}
if(degree.count(str2) == -1){
degree.insert(map<string, int>::value_type(str2, 0));
}
else{
degree[str2]--;
}
n--;
}
map<string, int>::iterator it;
string start, finish;
for(it = degree.begin(); it != degree.end(); it++){
// cout << it->first << " " << it->second << endl;
if(it->second == 1){
start = it->first;
}
if(it->second == -1){
finish = it->first;
}
}
cout << start << " " << finish;
return 0;
}
度为1的点是起点,度为-1的点是终点。
map的申明,插入(数组插入,insert插入),循环,删除 https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html