前言
正文
参考题解
#include<iostream>
#include<set>
using namespace std;
/* 题意: 微博抽奖,第一个获奖者编号为s(编号从1开始), 每隔n个人抽一名获奖者,注意每人最多只能获奖一次, 若某人此前已经获过奖则考虑其下一个回帖的用户 注意点: 考虑到不能有重复元素(不能多次获奖),故可以使用set 来存储已经获过奖的用户,每次进行find,如果没有查找到, 则输出该用户i,同时选择用户i+n,否则到下一用户i+1 */
const int N=1e3+10;
int m,n,s;
string name[N];
set<string> winners;
int main(){
cin>>m>>n>>s;
for(int i=1;i<=m;i++)cin>>name[i];
if(s>m)cout<<"Keep going..."<<endl;
else{
int i=s;
while(i<=m){
if(winners.find(name[i])!=winners.end())i++;
else{
winners.insert(name[i]);
cout<<name[i]<<endl;
i+=n;
}
}
}
return 0;
}