ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【CodeForces - 501B 】Misha and Changing Handles

2019-06-09 21:41:57  阅读:238  来源: 互联网

标签:小明 name 名字 s1 Handles 501B Changing 小朋友 include


Misha and Changing Handles

CodeForces原题是英文,这里就直接上中文好了,翻译不是太给力,但是不影响做题

^▽^

Description 

神秘的三角洲里还有一个传说中的谜题等你来解开!
三角洲里的小学生小明是个小天才,知天文晓地理还能夜观星象算命,好多疯狂的小朋友都想去请他给自己换个好听的名字。但是天才小明,他总是在思考31维宇宙空间的奥秘,神游天外,所以在给小朋友们敲他们想要的名字的时候,偶尔会取出一些不那么完美的名字。有的小朋友们换了名字以后不太满意,于是它们又会顶着改好的新名字来找小明。
可怜的小明,他沉迷宇宙的奥秘,有的小朋友名字换的次数太多,他已经快要记不清他们初始的名字和最后的名字是什么了,再这样下去,小朋友们会不满意,他取名字的业务就要滞销了!!!请你帮他整理一下每个小朋友的初始名字和最后敲定的名字。

Input

第一行表示有q个请小明帮忙改名字的请求。1<=q<=1000.
接下来q行,每行有两个字符串,代表这次来的小朋友现在的名字,和小明这回给它起的名字,这两个字符串由1个空格分开,字符串有大小写字母和数字,长度不超过20.

Output

输出一个n,代表来找过小明修改名字的人数。
接下来n行,每行一个人的最初始的名字,再输出小明最终给它起的名字。 (人的顺序随意)

Examples

Input
5
Misha ILoveCodeforces
Vasya Petrov
Petrov VasyaPetrov123
ILoveCodeforces MikeMirzayanov
Petya Ivanov
Output
3
Petya Ivanov
Misha MikeMirzayanov
Vasya VasyaPetrov123

题目链接:

https://vjudge.net/problem/CodeForces-501B

新名字要和旧名字一一对应,用map再好不了,如果有新名字了,就及时更新,更新完之后记得删去旧名字(不是原始名字)

AC代码:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define ll long long
#define INF 0x3f3f3f3f
#define ME0(x) memset(x,0,sizeof(x))
using namespace std;
map<string,string>name;//新名字与老名字一一对应
map<string,string>::iterator it;
int main()
{
    int n;
    int sum=0;
    cin>>n;
    while(n--)
    {
        string s1,s2;
        cin>>s1>>s2;
        if(!name.count(s1))//判断这个名字是否出现过
            name[s2]=s1;
        else//如果出现则更新
        {
            name[s2]=name[s1];
            name.erase(s1);//记得删去上一个老名字
        }
    }
    cout<<name.size()<<endl;//检查有几组映射
    for(it=name.begin(); it!=name.end(); it++)//遍历即可
        cout<<it->second<<" "<<it->first<<endl;
}

 

标签:小明,name,名字,s1,Handles,501B,Changing,小朋友,include
来源: https://www.cnblogs.com/sky-stars/p/10994917.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有