Misha and Changing Handles CodeForces
来源:互联网 发布:好医生app软件 编辑:程序博客网 时间:2024/05/16 14:40
Misha and Changing Handles
CodeForces - 501BMisha hacked the Codeforces site. Then he decided to let all the users change their handles. A user can now change his handle any number of times. But each new handle must not be equal to any handle that is already used or that was used at some point.
Misha has a list of handle change requests. After completing the requests he wants to understand the relation between the original and the new handles of the users. Help him to do that.
The first line contains integer q (1 ≤ q ≤ 1000), the number of handle change requests.
Next q lines contain the descriptions of the requests, one per line.
Each query consists of two non-empty strings old and new, separated by a space. The strings consist of lowercase and uppercase Latin letters and digits. Stringsold andnew are distinct. The lengths of the strings do not exceed20.
The requests are given chronologically. In other words, by the moment of a query there is a single person with handleold, and handlenew is not used and has not been used by anyone.
In the first line output the integer n — the number of users that changed their handles at least once.
In the next n lines print the mapping between the old and the new handles of the users. Each of them must contain two strings,old andnew, separated by a space, meaning that before the user had handleold, and after all the requests are completed, his handle isnew. You may output lines in any order.
Each user who changes the handle must occur exactly once in this description.
5Misha ILoveCodeforcesVasya PetrovPetrov VasyaPetrov123ILoveCodeforces MikeMirzayanovPetya Ivanov
3Petya IvanovMisha MikeMirzayanovVasya VasyaPetrov123
#include <iostream>#include <cstdio>#include <map>#include <string>using namespace std;int main(){int n;while(~scanf("%d",&n)){string a,b;map<string,string>mp;//建立一个map映射 int i;for(i = 0; i < n; i++){cin >> a >> b;if(!mp.count(a)){//如果old名字不存在,说明这是第一次出现 mp[a] = a;//建立一个指向自己的映射 }mp[b] = mp[a];//new指向old的映射mp.erase(a); }map<string,string>::iterator it;cout << mp.size() << endl;for(it = mp.begin(); it != mp.end(); it++) cout << it->second << ' ' << it->first << endl;}return 0;}
- Misha and Changing Handles CodeForces
- CodeForces - 501B Misha and Changing Handles
- Codeforces 501 B - Misha and Changing Handles
- CodeForces 501B Misha and Changing Handles
- codeforces 501B Misha and Changing Handles
- CodeForces 501B Misha and Changing Handles
- 【codeforces 510 B Misha and Changing Handles】
- Misha and Changing Handles
- Misha and Changing Handles
- Misha and Changing Handles
- Misha and Changing Handles
- B - Misha and Changing Handles
- B. Misha and Changing Handles
- Codeforces 501B - Misha and Changing Handles (STL)
- codeforces #285 B题Misha and Changing Handles解题报告
- codeforces#285 A - Contest + B - Misha and Changing Handles
- B. Misha and Changing Handles(Codeforces Round 285(div2))
- Codeforces Round #285 (Div. 2) ---B. Misha and Changing Handles
- linux 怎么挂载磁盘
- Object Detection--的一个好的对比总结文章
- SSL P2819 I Got a Matrix!
- myecplise显示行号
- 第12章 bitmap的加载和cache
- Misha and Changing Handles CodeForces
- spring注解如何替代xml配置的
- 第一章作业
- HDOJ 1563 Find your present!
- 最近邻搜索之乘积量化(Product Quantizer)
- 主机ping不通虚拟机
- es jar包冲突问题
- 类对象的生存周期
- window.location