PAT (Basic Level) Practice 1069 微博转发抽奖 (20 分)

题目:1069 微博转发抽奖 (20 分)

来源:PAT (Basic Level) Practice

传送门 1069 微博转发抽奖

题面

PAT (Basic Level) Practice 1069 微博转发抽奖 (20 分)

题意:给定总转法次数,间隔次数和起始位置,从起始位置每间隔指定次数抽取一个人,如果该位置的人中过奖,就顺延找到没中奖的继续按以上流程操作。

思路:见代码

Code

点击查看代码
#include <bits/stdc++.h>
using namespace std;
map<string,bool>mp;
string s[2000];
int main(){
	int m,n,d,num=0;
	cin>>m>>n>>d;
	for(int i=1;i<=m;i++)cin>>s[i];
	for(int i=d;i<=m;i+=n){
		if(mp[s[i]] == false){
			num++;
			mp[s[i]]=true;
			cout<<s[i]<<"\n";
		}
		else {
			for(int j = i+1;j<i+n;j++){
				if(mp[s[j]]==false){
					num++;
					mp[s[j]]=true;
					cout<<s[j]<<"\n";
					i=j;
					break;
				}
			}
		}
	}
	if(num==0)cout<<"Keep going...";

	return 0;
} 
上一篇:logging


下一篇:R开发环境搭建