codeforce B. Misha and Changing Handles

来源:互联网 发布:蔡澜淘宝店 编辑:程序博客网 时间:2024/06/05 18:41

题目链接:     http://codeforces.com/contest/501/problem/B


Sample test(s)
Input
5Misha ILoveCodeforcesVasya PetrovPetrov VasyaPetrov123ILoveCodeforces MikeMirzayanovPetya Ivanov
Output
3Petya IvanovMisha MikeMirzayanovVasya VasyaPetrov123
*********代码:

 #include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; const int maxn=1005; int main() {     string Name1[maxn],Name2[maxn];     string s1,s2;      int m;      cin>>m;      int cnt=0;      while(m--)      {          cin>>s1>>s2;           int  gg=0;          for(int i=1;i<=cnt;i++)            if(s1==Name2[i])          {              gg=i;              break;          }          if(!gg)          {             Name1[++cnt]=s1;             Name2[cnt]=s2;             continue;          }          Name2[gg]=s2;      }          printf("%d\n",cnt);          for(int i=1;i<=cnt;i++)            cout<<Name1[i]<<" "<<Name2[i]<<endl;     return 0; }
**********map  的做法:
#include<iostream># include<cstdio>#include<cstring>#include<string># include<map>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.find(s1)==m.end())            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;}


#include<cstdio>#include<string>#include<map>using namespace std;map<string,string> m;map<string,string>::iterator it;int main(){    int q;    char pre[25],now[25];    scanf("%d",&q);    while(q--)    {        scanf("%s%s",pre,now);        pair<string,string> tmp=make_pair(now,pre);        it=m.find(pre);        if(it!=m.end())        {            tmp.second=it->second;               m.erase(it);        }        m.insert(tmp);    }    printf("%d\n",m.size());    for( it=m.begin(); it!=m.end(); ++it)        printf("%s %s\n",it->second.c_str(),it->first.c_str());}



1 0
原创粉丝点击