题面:
Description
每到新生入学的时候,我们都会迎接很多新的同学。每当这个时候西瓜非常开心,因为又能看到很多学妹了。人数n很多(1<=n<=1000000),她们每个人都有一个学号ID,这个学号都是位于1~2000000000内的一个整数。
TYF手里有这n个人所有人的学号,并且知道其中有一个人出去约会了。
西瓜想知道这一个人是谁,于是他统计出了在场妹子的学号。
请你帮助西瓜找出哪一个人是谁。
Input
多组数据,EOF结束。
对于每组数据,第一行一个整数n,表示妹子的数量。
以下n行,每行一个整数,代表每个妹子的学号。
以下n-1,每行一个整数,表示在场的妹子的学号。
Output
对于每组输入,输出一行为没有来的妹子的学号
Sample Input
3
10061061
10061023
10061201
10061061
10061023
Sample Output
10061201
大致思路:
因为数据量很大,并且数字也很大。暴力是肯定过不了的。所以考虑用map。把出现过的都标记为1,然后扫一遍找0就行了。
代码:
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
string id[1000010];
int main()
{
int n;
ios::sync_with_stdio(false);//记得关同步
map<string,int> mp;
while(cin>>n)
{
string a;
for(int i=0;i<n;++i)
cin>>id[i];
for(int i=0;i<n-1;++i){
cin>>a;
mp[a]=1;
}
for(int i=0;i<n;++i)
if(mp[id[i]]==0){
cout<<id[i]<<endl;
break;
}
}
return 0;
}
324

被折叠的 条评论
为什么被折叠?



