理解真的太重要了:
延顺之后不用重新回到原来的中奖点
#include<iostream>
#include<map>
using namespace std;
int main()
{
int m, n, s;
cin >> m >> n >> s;
map<string, int> mp;
char zhf[1010][30];
for (int i = 1; i <= m; i++)
{
cin >> zhf[i];
mp[zhf[i]] = 0;
}
int flag = 0;
for (int i = s; i <= m; i+=n)
{
int t = i;
if (mp[zhf[i]] == 0) {
cout << zhf[i]<<endl;
mp[zhf[i]] = 1; flag = 1;
}
else {
while(++i<=m)
{
if (mp[zhf[i]] == 0) {
cout << zhf[i] << endl;
mp[zhf[i]] = 1;
break;
}
}
}
//i = t;
}
if (flag==0)
{
cout << "Keep going...";
}
return 0;
}