题目大意:
m条微博转发记录,第一个获奖者编号为s,每间隔n个就是下一个获奖者。但是没人只能拿一次奖,如果当前位置的人已经拿过了就向下顺延。
解题思路:
小模拟。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
map<string,int> win;
string forwar[1100];
int main()
{
int n,m,s,cont=0;
cin>>n>>m>>s;
for(int i=1;i<=n;i++)
cin>>forwar[i];
bool flag=false;
while(s<=n)
{
if(win[forwar[s]]==0)//没有获奖
{
cout<<forwar[s]<<endl;
win[forwar[s]]=1;//标记这个人已经获奖
flag=true;
s+=m;//跳过m个人
}
else s++;
}
if(!flag)cout<<"Keep going..."<<endl;
return 0;
}