https://pintia.cn/problem-sets/994805260223102976/problems/994805265159798784
测试点3是在要跳过已中奖用户之后,间隔要从后面一位开始计算。
#include<iostream>
#include<map>
using namespace std;
int main() {
int m, n, s, j, flag=0;
map<string, int> mapName;
cin >> m >> n >> s;
string name[m];
for(int i=0; i<m; i++){
cin >> name[i];
}
for(int i=0; i<m; i++){
if(i+1!=s)
continue;
flag=1;
for(j=i; j<m && mapName[name[j]]==1; j++);
if(j<m && mapName[name[j]] == 0){
cout << name[j] << endl;
mapName[name[j]]=1;
s = j+1+n;
}
}
if(flag==0){
cout << "Keep going..." << endl;
}
return 0;
}