C~K招亲
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
单身贵族C~K已经受够了独自一人的生活,他想要找一个女朋友来陪他一起学习,因此他面向全国发了一条招亲的通知。
因为C~K非常的优秀,因此全国各地很多妹子都发来了自己的报名表,C~K的手下DaYu帮他整理这些报名表,每收到一份新的报名表,就会把这份报名表放在最上面。
为了公平起见,C~K决定按照妹子提交的顺序来查看这些报名表,而且C~K不吃香菜,也不喜欢吃香菜的人,因此他不想看到喜欢吃香菜的人的报名表。而且有的妹子十分心急,提交了多份报名表,应该去掉这些重复的报名表。
C~K要求DaYu去重新整理排序一遍这些报名表,但是报名表实在太多,DaYu整理不过来,因此DaYu跑来求助你。
Input
妹子提交的报名表,内容分别为妹子姓名、妹子自我介绍,以及妹子是否喜欢吃香菜(True or False),同样的报名表只保留第一次出现的那份。
Output
C~K期望看到的报名表序列
Example Input
凤姐 我爱你 False 芙蓉 我想要和你在一起 False dayu 也许这就是爱情 False 奶茶 呵呵 True 芙蓉 我想要和你在一起 False
Example Output
dayu 也许这就是爱情 False 芙蓉 我想要和你在一起 False 凤姐 我爱你 False
Hint
当 reader.hasNext() == false 的时候,输入结束
Author
MeiK
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/4101.html
这个题本是给Java准备的,是大豪出给周老师的,我想了一下,c++也可以实现,就实现了一下,没想到还真出来了,好水的一道题~
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <map>
using namespace std;
string s[2000001];
int main(){
string s1,s2,s3;
map<string ,string >mp;
int cnt=0;
while(cin>>s1>>s2>>s3){
if(s3=="True"){
continue;
}
map<string ,string>::iterator it;
it=mp.find(s1);
if(it==mp.end()){
mp[s1]=s2;
string ss=s1+" "+s2;
s[cnt++]=ss;
}
}
for(int i=cnt-1;i>=0;i--){
cout<<s[i]<<" "<<"False"<<endl;
}
return 0;
}