一、技术总结
- 这一题就是简单按题目要求变成输出即可
- 就是抽奖,给出抽奖人数,然后间隔人数,以及开始中奖人的下标;如果参与抽奖的人转发不止一次,中奖后,再次中奖跳过该人,继续抽,如果开始抽奖人的下标大于参与抽奖的人数,输出Keep going...
- 还有一点需要注意的是,使用string类型的变量,只能使用cin和cout,不能够使用scanf和printf。
二、参考代码
#include<iostream>
#include<string>
#include<set>
using namespace std;
set<string> sname;
string name[1010];
int main(){
int m, n, s;
scanf("%d%d%d", &m, &n, &s);
for(int i = 1; i <= m; i++){
// scanf("%s", name[i]);
cin >> name[i];
}
if(m < s) printf("Keep going...");
else{
int i = s;
while(i <= m){
if(i != s && sname.find(name[i]) != sname.end()){
i += 1;
continue;
}
// printf("%s
", name[i]);
cout << name[i] << endl;
sname.insert(name[i]);
i += n;
}
}
return 0;
}