map<虽然一直不喜欢map>但突然觉得挺好用的

#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<map>
#include<cstdlib>
#include<set>
#include<ctime>
#include<vector>
#include<cstdio>
#include<list>
#include<sstream>
//#include<regex>
using namespace std;
typedef long long ll;
int INF=2147483647;
int inf=-2147483648;
#define mod 1000000007;
#define read(x) scanf("%d",&x);
#define fo(i,n) for(int i=0;i<(n);i++)
#define me(a) memset(a,0,sizeof(a));
#define one(x) cout<<(x)<<endl;
#define two(a,b) cout<<(a)<<" "<<(b)<<endl;
#define three(a,b,c) cout<<(a)<<" "<<(b)<<" "<<(c)<<endl;
#define four(a,b,c,d) cout<<(a)<<" "<<(b)<<" "<<(c)<<" "<<(d)<<endl;
//int dir[4][2]={0,1,0,-1,1,0,-1,0};
//int dir[8][2]={-1,0,1,0,0,-1,0,1,-1,-1,1,1,1,-1,-1,1};
//int dir[4][2]={-2,0,2,0,0,-2,0,2};
//int dir[6][3]={0,0,1,0,0,-1,0,1,0,0,-1,0,1,0,0,-1,0,0};
const double PI = acos(-1.0);
int main()
{
    ios::sync_with_stdio(false);
    int n;
    string a,b;
    map<string,string>q;
    map<string,string>::iterator it;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a>>b;
        if(q.count(a)==0){
            q[a]=a;
        }
        q[b]=q[a];
        q.erase(a);
    }
    cout<<q.size()<<endl;
    for(it=q.begin();it!=q.end();it++){
        cout<<it->second<<" "<<it->first<<endl;
    }
    cout<<endl;
    return 0;
}

 

posted @ 2016-12-29 15:12  俺叫王梦涵  阅读(166)  评论(0编辑  收藏  举报