约瑟夫问题[5]
测试数据来自 system/2330
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【问题描述】
有 \(k\) 个坏人 \(k\) 个好人坐成一圈,前 \(k\) 个为好人(编号 \(1..k\)),后 \(k\) 个为坏人(编号 \(k+1..2k\)), 现在有一个报数 \(m\),从编号为 1 的人开始报数,报到 \(m\) 的人就要自动死去。 问当 \(m\) 为什么值时,可以使得在出现好人死亡之前,\(k\) 个坏人先全部死掉?
【输入格式】
包含若组测试数据,每组数据占一行一个整数 \(k\),表示有 \(k\) 个好人和 \(k\) 个坏人。最后一为 0 表示测试数据结束。
【输出格式】
每组测试数据输出一行,表示最小的 \(m\)。
【输入输出样例】
Input
3
4
0
Output
5
30
【数据说明】
对于 \(100\%\) 的数据 \(0 < k < 14\),最多不超过20万组测试数据。
【来源】
Mr.he