UVA402 M*A*S*H
题目背景
克林格下士是朝鲜战争中第 $4077$ 机动部队外科医院的成员;他会不惜一切代价逃出去。美国陆军已经开出了一张彩票,可以选择一些幸运的人($X$)返回美国进行征兵之旅。克林格需要你的帮助。
题目描述
抽奖是通过将该单位的所有成员排成一行,并通过从 $1$ 到 $N$ 的顺序数来淘汰成员,其中 $N$ 是通过从牌组顶部拔出牌来选择的数字。每次到达 $N$ 时,该人就从该行中掉出来,并从 $1$ 开始再次计数,下一人在该行中。当到达该行的末尾时(使用该行的任何数字)牌组顶部的下一张牌将被取下,计数从 $1$ 开始,剩余一行的第一个人再次计数。排在最后的 $X$ 个人就可以回家了。
克林格发现了一种方法,在选择过程开始之前,将堆叠一层与真实一层进行交换。然而,直到最后一分钟,他才知道有多少人将参加评选。
你的工作是编写一个程序,在选择过程开始之前,使用克林格提供的层面和他计算的排队人数,并告诉他排队的位置,以确保他能回家。
一个简单的例子,有 $10$ 个人,$2$ 个回家名额,以及卡片 $3$、$5$、$4$、$3$、$2$ 上的数字,那么克林格应该在位置 $1$ 或 $8$ 上才能回家。
输入格式
对于每个选择,您将得到一行 $22$ 个整数。第一个整数($1\leq N\leq50$)表示将有多少人参加彩票。第二个整数($1\leq X\leq N$) 将选择多少幸运的位置。接下来的 $20$ 个整数是牌组中前 $20$ 张牌的值。卡值被解释为介于 $1$ 和 $11$ 之间(含 $1$ 和 $11$)的整数值。
输出格式
对于每个输入行,您需要在一行上单独打印消息 `Selection #A`,其中 $A$ 是输入文件顶部以 $1$ 开头的选择编号。(如 `Selection #1`,`Selection #2`)下一行将包含克林格应该尝试进入的“幸运”位置列表。如果牌组在使用第 $20$ 张牌时还没有完成任务,请打印所有剩余的人。
“幸运”列表后面是一个**空行**。