报数出圈
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目背景
约瑟夫是犹太军队的一个将军,在反抗罗马的起义中,他所率领的军队被击溃,只剩下残余的部队40余人,他们都是宁死不屈的人,所以不愿投降做叛徒。一群人表决说要死,所以用一种策略来先后kill所有人。 于是约瑟夫建议:每次由其他两人一起kill一个人,而被kill的人的先后顺序是由抽签决定的,约瑟夫有预谋地抽到了最后一签,在kill了除了他和剩余那个人之外的最后一人,他劝服了另外一个没死的人投降了罗马。约瑟夫当年活下来就是靠快速计算这个问题。
说明
北辰OI俱乐部的 个人围成一圈,编号依次为 , , …。从第一个人开始报数,数到 的人出列,再由下一个人重新从 开始报数,数到 的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。
输入格式
两个整数 ,()。
输出格式
个用空格分隔的整数,表示出圈人的编号。
样例
6 4
4 2 1 3 6 5
[北辰杯 North-Star-Cup] 十一月月赛(入门赛)
- Status
- Done
- Rule
- Ledo
- Problem
- 6
- Start at
- 2023-11-10 18:00
- End at
- 2023-11-11 0:00
- Duration
- 6 hour(s)
- Host
- Partic.
- 74