您的位置:首页 > 其它

2016年普级组模拟试题(10月20日) 小游戏game

2017-08-07 15:33 369 查看
Time Limit:10000MS Memory Limit:256000K

Total Submit:27 Accepted:19

Case Time Limit:1000MS

Description

【题目背景】

yk同学是一个灰常灰常有爱的同学,虽然各种老师总是让他干看似很无聊的事情,但是他总是发明一些好玩的办法来完成这些无聊的任务,这样yk就不会整天那么忧郁啦~ 这次,老师又给他布置了一个任务,让他搬凳子~~ 当然他非常有爱地把这个任务发展成了一个小小小游戏~ hoho,现在他让你来玩这个小游戏,have a try~

【题目描述】

现在有M个凳子排成一个圈,我们顺时针给凳子依次编号为1,2,3……,M。我们从编号为S的凳子开始,每次先顺时针数N个凳子,将第N个凳子搬走,然后再逆时针数K个凳子,将第K个凳子搬走。每次都这样先顺时针数N个,再逆时针数K个,直到只剩1个凳子,直接搬走。最后,我们想知道M个凳子的搬走顺序。

Input

共4行,每行1个数,分别表示题目中的M,S,N,K。

Output

仅一行,凳子搬走的序列,每个编号间有一个空格。

Sample Input

8

1

3

2

Sample Output

3 1 5 2 7 4 6 8

Hint

【数据范围】

100% M<=1000

var

a:array[0..10000] of longint;

i,n,m,j,k,t,s,l,ans,b,n1:longint;

begin

readln(m);

readln(s);

readln(n);

readln(k);

t:=s;

ans:=m;

for i:=1 to m do

a[i]:=i;

for i:=1 to m-1 do

begin

if i mod 2=1 then begin

t:=t+n-1;

while t>ans do t:=t-ans;

write(a[t],’ ‘);

dec(ans);

for j:=t to ans do

a[j]:=a[j+1];

end;

if i mod 2=0 then begin

t:=t-k;

while t<1 do t:=t+ans;

write(a[t],’ ‘);

dec(ans);

for j:=t to m do

a[j]:=a[j+1];

end;

end;

write(a[1]);

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: