前言

传送门

正文


参考题解

#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;
}