链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
?
Younik挂好号之后,就去找医生了。但是她没想到,看医生居然也要排队!
于是younik可怜兮兮地站在大厅里,盯着墙上的显示屏,显示屏会不停地打出名字,如果一个人被叫到但没进去,显示屏可能会叫他很多次。
你能告诉younik她是第几个被叫到的人吗?
Ps.如果一个人被叫了两次,他还是一个人,不能算两个人。(题目数据范围为200)
第一行是一个正整数n,表示显示屏会叫几次。
接下来n行,每行都是一个名字。
一个正整数,表示younik是第几个被叫到的人。不需要换行。
示例1
6 zhangsan lisi wangwu lisi younik liliu
4
根据题目每个人只算一次的特点可以想到用set解决。我开了两个set,先用第一个set容器输入,当输入为“younik”时换用第二个set容器接收剩余的名字,第一个set的元素个数即为答案
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
set<string>s;
set<string>sy;
int i;
string temp;
for(i=0;i<n;i++)
{
cin>>temp;
if(temp=="younik")
{
s.insert(temp);
break;
}
else s.insert(temp);
}
for(i;i<n;i++)
{
cin>>temp;
sy.insert(temp);
}
cout<<s.size();
}