#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<map> using namespace std; int n; map<string, string> ma; map<string, int> vis; map<string, string> res; map<string, int> Q; char s1[1010][110], s2[1010][110]; int gg[1010]; int cnt = 0; int main(){ scanf("%d", &n); for(int i = 1; i<=n; i++){ cin>>s1[i]>>s2[i]; ma[s1[i]] = s2[i]; vis[s2[i]] = 1; Q[s1[i]] = 1; Q[s2[i]] = 0; } int num = 0; for(int i = 1; i<=n; i++){ if(vis[s1[i]] == 0){ num++; string ss; ss = ma[s1[i]]; while(Q[ss]!=0){ ss = ma[ss]; } res[s1[i]] = ss; //cout<<s1[i]<<" "<<ss<<endl; gg[cnt++] = i; } } cout<<num<<endl; for(int i = 0; i<cnt; i++){ cout<<s1[gg[i]]<<" "<<res[s1[gg[i]]]<<endl; } return 0; }
codeforces-501B Misha and Changing Handles(map)
猜你喜欢
转载自blog.csdn.net/grimcake/article/details/80365130
今日推荐
周排行