标签:Raffle Weibo A1124 输出 int mapp flag 中奖 转发
题目描述
链接
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出“Keep going…”
分析
用mapp存储当前用户有没有已经中奖过~当输入的时候,判断当前字符串是否已经在mapp中出现过,如果出现过就将s+1。每次判断i是否等于s,如果等于s且当前用户没有中过奖,就将它的名字输出,并且s = s + n~并将mapp[str]标记为1,且flag标记为true表示有过人中奖。最后flag如果依然是false说明要输出Keep going…
代码
#include<bits/stdc++.h>
using namespace std;
int m,n,s;
vector<string> a;
map<string, bool> mp;
int main(){
scanf("%d%d%d",&m,&n,&s);
a.resize(m+1);
for(int i=1;i<=m;i++){
cin>>a[i];
}
bool flag = 0;
for(int i=s;i<=m;i+=n){
if(mp[a[i]] != 1){
mp[a[i]] = 1;
flag = 1;
printf("%s\n", a[i].c_str());
}else{
i++;
i-=n;
}
}
if(!flag) printf("Keep going...\n");
}
标签:Raffle,Weibo,A1124,输出,int,mapp,flag,中奖,转发 来源: https://www.cnblogs.com/doragd/p/11466003.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。