其他分享
首页 > 其他分享> > PAT (Basic Level) Practice 1069 微博转发抽奖 (20 分)

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

作者:互联网

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

来源:PAT (Basic Level) Practice

传送门 1069 微博转发抽奖

题面

image

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

思路:见代码

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;
} 

标签:1069,抽奖,PAT,Level,int,微博,转发
来源: https://www.cnblogs.com/w0x59-h/p/15860599.html