n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开始顺时针数。每一轮中A数到k个就停下来,B数到m个就停下来(注意有可能两个官员停在同一个人身上)。接下来被官员选中的人(1个或2个)离开队伍。
输入n,k,m输出每轮中被选中的人的编号(如果有两个人,先输出被A选中的)。
例如,n=10,k=4,m=3,输出为4 8,9 5,3 1,2 6,10, 7
注意:输出的每个数应恰好占3列

//采用自顶而下的方法编写程序,用一个大小为0的数组表示人站成的圈。为避免人走后移动数组元素,用0表示离开队伍的人
#include<stdio.h>
#define maxn 25
int n,k,m,a[maxn];
//逆时针走t步,步长是d(-1表示顺时针走),返回新位置
int go(int p,int d,int t)
{while(t--){do{p=(p+d+n-1)%n+1;}while(a[p]==0);//走到下一个非0数字 }return p;
}
int main()
{while(scanf("%d%d%d",&n,&k,&m)==3&&n){for(int i=1;i<=n;i++){a[i]=i;}int left=n;//还剩下的人数int p1=n,p2=1;while(left){p1=go(p1,1,k);p2=go(p2,-1,m);} printf("%3d",p1);left--;if(p2!=p1){printf("%3d",p2);left--;}a[p1]=a[p2]=0;if(left){printf(",");}printf("\n";)}return 0;
}

救济金发放(The Dole Queue)相关推荐

  1. UVA-133 The Dole Queue 救济金发放

    一.题目 In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoce ...

  2. UVA - 133 ​​​​​​​The Dole Queue

    The Dole Queue UVA - 133 题目传送门 模拟一遍过程,注:可能会选中同一个人 AC代码: #include <cstdio> #include <iostrea ...

  3. 【UVA】 133 --- The Dole Queue

    [UVA] 133 --- The Dole Queue In a serious attempt to downsize (reduce) the dole queue, The New Natio ...

  4. 算法竞赛入门经典(第二版) | 例题4-3 救济金发放 (UVa133,The Dole Queue)

    提目(提交)链接→UVa-133 百度翻译→百度翻译 没使用过该网站的同学请猛戳这里→vJudge教程 分析: 最开始的固有思维是循环就用循环链表,其实完全可以把它看成一个大一点的周期类型题(一个大周 ...

  5. ACM题目:救济金发放

    思路: 1. 使用数组que记录在队伍中的人,数组索引范围是 1~n: 2. 用book标记离开队伍的人 3.用 left 记录队伍剩下的人数,left=0的时候,就可以结束循环: 3.分别从que[ ...

  6. UVa133 - The Dole Queue

    题意:给出一个数组,分别从1和N开始数k,m,然后将选中的数删除,继续直到数组长度为0 思路:主要是用stl中的list 代码如下: #include <iostream> #includ ...

  7. 蓝桥杯 真题 救济金发放、分糖果、刽子手游戏

    题目 n(n<20)个人站成一圈,逆时针编号为1-n.有两个官员,A从1开始逆时针数,B从n开始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上 ...

  8. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

  9. 算法竞赛入门第二版解题报告

    第四章 函数和递归 1.例子 1339 - Ancient Cipher(排序) 489 - Hangman Judge (set使用) 133 - The Dole Queue(list使用) 21 ...

最新文章

  1. Error in plot.new() : figure margins too large
  2. 软件相关模块与ansible剧本
  3. MM--发票校验 及基于采购订单的MIRO发票校验过程
  4. Cloud Fiori Launchpad
  5. JZOJ 2678. 树B
  6. UVA - 11181 数学
  7. 【BZOJ4516】生成魔咒,后缀数组+Splay
  8. Oracle 11gR2 GI基本安装手册
  9. oracle中的内连接和外连接区别
  10. qemu-img 镜像转换工具使用
  11. 【家庭网络】申请安装移动宽带过程及简单建议
  12. 2018-2019-2 20189215 《网络攻防技术》第八周作业
  13. webkit未能加载文件或程序集WebKitBrowser
  14. Pandas完美读取html格式的Excel所有隐藏数据
  15. 企业上云成趋势 看超融合如何开箱即用、一步上云
  16. php 检测英文字符,php正则验证中英文字符串 - 小俊学习网
  17. 离散数学中Warshall算法简析
  18. 学人工智能可以干什么?AI岗位有哪些?
  19. 使用gstreamer,rtsp拉流,保存图像, jeston,使用硬件加速nvdec/nvenc
  20. RPA or 爬虫?模拟人工访问某服务平台—增加空间的访问量

热门文章

  1. 【为生活开发系列之四】图片文字识别与标准文档对比工具
  2. conda安装torch遇坑
  3. UVM学习之路(5)— 完整的UVM验证平台
  4. Docker常用命令记录
  5. 使用JAVA+秒嘀发送手机验证码
  6. 2022全球程序员薪酬报告:字节在榜,上海薪资近9万美元
  7. mongodb 客户端推荐
  8. MYSQL高级进阶:运算符、逻辑运算符、条件语句等使用
  9. 司法部开展网络赋强公证试点工作,易保全为公证处和金融机构提供一站式互联网公证系统搭建服务
  10. 高层管理人的首要任务便是制定企业的发展战略