1438.取牌游戏(队列)

题目描述
小明正在使用一堆共K张纸牌与N-1个朋友玩取牌游戏。其中,N<=K<=100000, 2<=N<=100, K是N的倍数。纸牌中包含M=K/N张“Good”牌和K-M张“Bad”牌。小明负责发牌,他当然想自己获得所有“Good”牌。

他的朋友怀疑他会欺骗,所以他们给出以下一些限制,以防止小明耍诈:

1)游戏开始时,将最上面的牌发给小明右手边的人。

2)每发完一张牌,他必须将接下来的P张牌(1<=P<=10)一张一张地依次移到最后,放在牌堆的底部。

3)以逆时针方向,连续给每位玩家发牌。

小明迫切想赢,请你帮助他算出所有“Good”牌放置的位置,以便他得到所有“Good”牌。牌从上往下依次标注为#1,#2,#3,…

输入
共一行,包含3个正整数N,K和P,中间用空格隔开

输出
M行,从顶部按升序依次输出“Good”牌的位置

样例输入
3 9 2
样例输出
3
7
8
提示
[提交][状态]
这道题的难度还是可观的,不过用循环队列一下就出来了

#include<iostream>
#include<algorithm>
using namespace std;
int a[1200000],b
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值