题意
给定M个字符串(同一字符串可重复出现),从第S个每隔N个地选取字符串,若该字符串已被选取,则选取下一个。
源码
#include<iostream>
#include<map>
#include<vector>
using namespace std;
map<string,bool>winBefore;
vector<string>winner;
vector<string>followers;
int main(){
int n,m,k;
cin>>n>>m>>k;
for(int i=0;i<n;i++){
string name;
cin>>name;
followers.push_back(name);
}
for(int i=k-1;i<n;){
if(winBefore.find(followers[i])!=winBefore.end()){
i++;
continue;
}else{
winBefore[followers[i]]=true;
winner.push_back(followers[i]);
i+=m;
}
}
if(winner.size()==0){
cout<<"Keep going..."<<endl;
}else{
for(int i=0;i<winner.size();i++){
cout<<winner[i]<<endl;
}
}
}