PAT1069 微博转发抽奖
来源:互联网 发布:日本核辐射 化妆品知乎 编辑:程序博客网 时间:2024/06/10 21:30
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。
输入格式:
输入第一行给出三个正整数M(<= 1000)、N和S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从1开始)。随后M行,顺序给出转发微博的网友的昵称(不超过20个字符、不包含空格回车的非空字符串)。
注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。
输出格式:
按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出“Keep going...”。
输入样例1:9 3 2Imgonnawin!PickMePickMeMeMeeeLookHereImgonnawin!TryAgainAgainTryAgainAgainImgonnawin!TryAgainAgain输出样例1:
PickMeImgonnawin!TryAgainAgain输入样例2:
2 3 5Imgonnawin!PickMe输出样例2:
Keep going...
本题基本思想是map
不过刚做这题的时候我一直有个疑惑,假设间隔是2,领奖人的序号是0,2,4,6……如果2和4号是同一个人,跳过以后,那应该是0,2,5,7,9……还是只跳过这一个,后面的按照原先的序号:0,2,5,6,8…… 事实证明是我想多了。。应该是前者
#include <iostream>#include <string>using namespace std;int main(){ int i,j; string s[1010]; int myhash[1010] = {0}; int num,between,from; cin >> num >> between >> from; if(from > num) { cout << "Keep going..."; return 0; } for(i=1;i<=num;i++) cin >> s[i]; for(i=from; i<=num;) { if(!myhash[i]) { cout << s[i] << endl; for(j=i;j<=num;j++) { if(s[j] == s[i]) myhash[j] = 1; } i+=between; } else i++; }}
阅读全文
0 0
- PAT1069 微博转发抽奖
- 1069. 微博转发抽奖
- 1069. 微博转发抽奖
- 1069. 微博转发抽奖
- PAT 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- B1069. 微博转发抽奖(20)
- PAT-B 1069. 微博转发抽奖
- 1069. 微博转发抽奖(20)
- PAT 1069. 微博转发抽奖
- PAT 1069.微博转发抽奖
- [PAT-乙级]1069.微博转发抽奖
- 1069. 微博转发抽奖(20)
- 1069. 微博转发抽奖(20)
- Fountains CodeForces
- prometheus+grafana实现筛选项关联查询
- POJ1007-DNA Sorting
- bzoj 1665: [Usaco2006 Open]The Climbing Wall 攀岩(最短路)
- sun.misc.BASE64Encoder找不到jar包的解决方法
- PAT1069 微博转发抽奖
- gulp构建工具
- 实现单例模式(offer)
- *递推
- SpringBoot获得application.properties中数据的几种方式
- Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header
- Qt Creator快捷键
- UEFI 双启动情况下禁用 GRUB 的启动菜单
- [LeetCode] 4. Longest Palindrome Substring 分析+代码