题目描述:n个人围成一个圈子,从第x人开始,报到m出列。
#约瑟夫环进阶 从第x人开始报数 先处理x之前的元素,让他们出队,再入队尾,使x到队头
#输入:3 5 8
#输出:3 2 1
n,x,m=map(int,input().split()) #n个人,,从第x人开始,报到m出列
queue=list(range(1,n+1)) #生成队列
a=[] #储存出队顺序
baoshu=0
for i in range(x-1): # 先处理队列,使x先到队头
y=queue.pop(0) # 弹出队头元素
queue.append(y) # 添加到队尾
while len(queue)>1:
temp=queue.pop(0) #弹出队头元素,报数加一
baoshu+=1
if baoshu==m: #如果报到了m,就加入出队列表
a.append(temp)
baoshu=0 # 重新报数
else:
queue.append(temp) # 没到m,重新加回队列
for j in a+queue:
print(j)