暴雪公司周年庆,在论坛推出盖楼抢楼层活动,幸运儿获得霜之叹息一把,于是大家蜂拥而至,开始抢楼了,你的任务就是找出幸运儿。
输入格式:
第一行中输入三个整数N,K,S,N是楼层总数,不超过1000,K是间隔多少楼层产生幸运儿,S是第一个幸运儿的楼层编号,楼层从1开始编号。随后的N行,是各楼层的跟帖人的昵称,昵称是一个不超过20个字符的字符串,不含空格。事情原本很简单,但是霜之叹息太诱人了,于是很多人重复发帖,希望能抢到楼层,但是暴雪公司规定,每个人最多只能得1把霜之叹息,如果已经得过了,那就要跳过。
输出格式:
对每一组输入,输出幸运儿的昵称,一行一个,如果没人被选中,那就输出No one was chosen。
输入样例1:
10 3 1
Underneath
Weddinginthedream
Queen
WaitingforLove
Drinktowind
Bodyontheocean
Dark
Lolita
Thedreamofyou
Smilelikeflower
输出样例1:
Underneath
WaitingforLove
Dark
Smilelikeflower
输入样例2:
2 3 3
Underneath
Weddinginthedream
输出样例2:
No one was chosen
分析:没啥好分析的,申清题,造他就完了,奥里给
AC代码:
#include<bits/stdc++.h>
using namespace std;
int t=0;
string a;
string s[200]; //获奖人名数组
bool judge(string a)
{
for(int i=0;i<t;i++)
if(a==s[i])
return false;
return true;
}
int main()
{
int N,K,S;
cin>>N>>K>>S;
if(S>N)
{
cout<<"No one was chosen\n";
return 0;
}
for(int i=1;;i++)
{
cin>>a;
if(i==S)
{
cout<<a<<endl;
s[t++]=a;//控制查重判定范围
break;
}
}
int count=1;
for(int i=S+1;i<=N;i++)
{
cin>>a;
if(count%K==0)
{
if(judge(a))
{
cout<<a<<endl;
s[t++] = a;
}
else
continue;
}
count++;
}
return 0;
}