Misha and Changing Handles (map)

题目链接 ------------------------------------------
题意:把(a,b)(b,c)保存为(a,c)

代码

#include
#include
#include
#include
#include
using namespace std;
map<string ,string> m;
int main()
{
    string s1,s2;
    int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        cin>>s1>>s2;
        if(!m.count(s1))
            m[s2]=s1;
        else
        {
            m[s2]=m[s1];
            m.erase(s1);
        }
    }
    cout<<m.size()<<endl;
    for(map<string ,string>::iterator i=m.begin(); i!=m.end(); i++)
        cout<<i->second<<" "<<i->first<<endl;
    return 0;
}

你可能感兴趣的:(暑期训练)