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=;
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;
}

最新文章

  1. Google的Bigtable学习笔记(不保证正确性)
  2. centos下安装nginx和php-fpm
  3. mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等
  4. .babelrc和babel.config.js的相同配置不能合并
  5. JDK 1.8源码阅读 TreeMap
  6. sklearn 岭回归
  7. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (四)
  8. JavaScript:原生JS实现Facebook实时消息抓捕
  9. 【hyperscan】编译hyperscan 4.0.0
  10. Linux chattr 命令详解
  11. 20162327WJH实验五——数据结构综合应用
  12. 转:变手把手教你玩转SOCKET模型之重叠I/O篇
  13. Discuz x3 UCenter实现同步登陆原理
  14. BZOJ4503 两个串 【fft】
  15. 轮廓Outline|表格Table实例
  16. 【洛谷P1967】[NOIP2013]货车运输
  17. 比线程更NB的存在
  18. vi 编辑器的复制
  19. Resize operation completed for file#
  20. nginx 反向代理配置

热门文章

  1. OSI七层模型详解(转)
  2. cocoaPods 安装和应用
  3. ADO.NET EF 4.2 中的查询缓存(避免查询缓存)
  4. VirtualBox中使用双网卡实现CentOS既能上网(校园网)也能使用SSHclient
  5. mybatis 简单项目步骤
  6. Apache Qpid Broker云
  7. WPF中如何使用代码操作数据模板生成的控件
  8. CSS3 (一)
  9. 最长公共上升子序列 (poj 2127) (Greatest Common Increasing Subsequence)
  10. 创建Material Design风格的Android应用--应用主题