发牌者(c++)

这是一道关于贝西和其他奶牛玩纸牌游戏的编程问题。游戏规则包括轮流发牌和切牌,目标是使所有好牌最终集中在贝西手中。你需要找出初始时好牌应放置的位置,以确保在发完牌后贝茜能获得全部好牌。输入包括牛的数量N、牌的数量K和切牌数P,输出是好牌的初始位置。
摘要由CSDN通过智能技术生成

题目描述

贝西与其他的 N-1 头奶牛围成一圈玩纸牌游戏。已知一副纸牌有 K (K 为 N 的倍数)张,其中有K/N 张“好牌”。贝茜是游戏的发牌者,发牌规则如下:

1)、贝茜把牌堆的最上面一张发给她右边的奶牛;

2)、每当贝茜发完一张牌,她都得将牌堆顶部 P 张牌放到底部去(一般把这个操作称为切牌);

3)、然后,贝茜对逆时针方向的下一头奶牛重复上述的操作。

贝茜想把所有好牌都留给自己,于是她找到了你,希望你能告诉她,将“好牌”放在初始牌堆的哪些位置,才能确保它们在发完牌后全集中到贝茜的手里。
注意:我们把牌堆顶的牌定义为 1 号牌,从上往下第二张定义为 2 号牌,依此类推。

输入格式

输入包含 3 个用空格隔开的整数:N、K 以及P 。

输出格式

一行,包含 M 个整数,表示贝茜应该在初始牌堆的这个位置放一张好牌。所有的位置按升序输出。

样例

输入样例

3 9 2

输出样例

3 7 8

数据范围与提示

1<=N<=100

N<=K<=100000

#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
int main(){
	int n,k,p,num[1000000],times=0;
	queue<in
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值