在这题中,我进入了思维盲区,我想着用for循环进行处理,然后用循环变量i来进行处理,用i来回变换,找出规律,我越想越复杂,就感觉出来不对劲,用i来处理的话,对于题目中的情况(第s+n个已经中奖了,处理不了),应该用一个新的变量来进行解决。
#include<bits/stdc++.h>
using namespace std;
int main(){
int m,n,s,i=0;
map<string,int>mapp;
string a;
cin>>m>>n>>s;
while(m--){
cin>>a;
i++;
if(i==s){
cout<<a<<endl;
mapp[a]=1;
}
else{
if(i>s&&(i-s)%n==0){
if(mapp[a]==0){
mapp[a]=1;
cout<<a<<endl;
}
else{
i--;
}
}
}
}
if(mapp.size()<1){
cout<<"Keep going..."<<endl;
}
return 0;
}