【AKOJ】1021-最后的胜利者
2016-05-10 12:35
357 查看
最后的胜利者
Time Limit:1000MS Memory Limit:65536K
Total Submit:8 Accepted:6
原题链接
Description
n 个小孩围成一圈做游戏,游戏将决出若干个胜利者。假定一个数 m,从第
1 个小孩起,顺时针数数,每数到第 m 个小孩时,该小孩离开。接着又从
下一个小孩开始数数,数到第 m 个小孩时,该小孩也离开,如此不断反复
进行,最后剩下的 k 个小孩便是胜利者。对于一定的 n、m、k,究竟胜利
者是哪些呢?
Input
输入数据有一些数据组,每组数据含有整数 n、m、k(1≤ n, m, k≤
50)),分别表示小孩数,游戏中每次数数的个数和最后剩下的 k 个胜利
者。
Output
对于每组数据,按从小到大的顺序输出一列获胜小孩的位置。每组获胜序
列之间应回车。
Sample Input
Sample Output
Source
ahstu@ICPC02
Time Limit:1000MS Memory Limit:65536K
Total Submit:8 Accepted:6
原题链接
Description
n 个小孩围成一圈做游戏,游戏将决出若干个胜利者。假定一个数 m,从第
1 个小孩起,顺时针数数,每数到第 m 个小孩时,该小孩离开。接着又从
下一个小孩开始数数,数到第 m 个小孩时,该小孩也离开,如此不断反复
进行,最后剩下的 k 个小孩便是胜利者。对于一定的 n、m、k,究竟胜利
者是哪些呢?
Input
输入数据有一些数据组,每组数据含有整数 n、m、k(1≤ n, m, k≤
50)),分别表示小孩数,游戏中每次数数的个数和最后剩下的 k 个胜利
者。
Output
对于每组数据,按从小到大的顺序输出一列获胜小孩的位置。每组获胜序
列之间应回车。
Sample Input
10 3 3 10 4 3 5 2 2 2 1 1
Sample Output
4 5 10 1 5 6 3 5 2
Source
ahstu@ICPC02
#include<iostream> #include<algorithm> using namespace std; main() { int a[2000],M,N,k,x; while(cin>>M>>N>>k) { x=1; for(int i=1;i<=M;i++) //数组赋初值,初值即为其编号 { a[i]=i; } while(M) { if(M==k) { sort(a,a+M); for(int i=1;i<=M;i++) {cout<<a[i]; if(i!=M)cout<<" "; } cout<<endl; break; } if((N%M+x-1)%M==0) {x=M;} else {x=(N%M+x-1)%M;} for(int j=x;j<M;j++) {a[j]=a[j+1];} M--; } } }
相关文章推荐
- FMDB增删改查的使用
- ScrollView如何嵌套ScrollView
- 百度地图API接口 地图标注 地址经纬度解析
- sql server中将一个字段根据某个字符拆分成多个字段显示
- [转载]C#读写txt文件的两种方法介绍
- 从四个方面帮你做好移动页面性能优化
- 在centos上安装nfsen及插件
- 电商ERP系统——商品SKU与库存设计
- 使用OWIN 构建自宿主ASP.NET Web API 2
- 异常代码c0000005
- Android通用流行框架大全
- uva 10763 Foreign Exchange <"map" ,vector>
- android studio Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"
- hadoop 2.7.2 (hadoop2.x)使用ant制作eclipse插件hadoop-eclipse-plugin-2.7.2.jar
- ID卡卡号格式输出说明
- JAVA IO学习
- jquery mobile 输入框无边框
- Python学习笔记:字典(dict)有关内容
- 其实对于家里的电脑就是硬盘不太好
- python的优点