题目描述
小明正在使用一堆共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