CF83B Doctor
题目描述
队列中有 $n$ 只动物正在排队等着见“杜利特医生”。每当一只动物进入诊室,医生会对它进行检查,开处方,安排检查,甚至可能安排额外的检查。医生非常了解森林里的所有动物,因此她准确知道队列中第 $i$ 只动物一共需要见医生 $a_{i}$ 次。我们假设检查花费的时间远远超过做检查和其他附加流程,因此每当一只动物结束诊疗离开后,会立即回到队尾(当然,如果它已经获得了需要的全部检查次数,它就不用再排队,直接回家)。
医生计划在接待了 $k$ 只动物后下班,因此她需要知道那时队列的情况。由于医生工作时间很长,不能被这些琐事分心,于是请你帮她计算。
输入格式
输入的第一行包含两个用空格分隔的整数 $n$ 和 $k$($1 \leq n \leq 10^{5}$,$0 \leq k \leq 10^{14}$)。第二行包含 $n$ 个整数 $a_{1},a_{2},...,a_{n}$($1 \leq a_{i} \leq 10^{9}$)。
请不要在 C++ 中使用 %lld 格式符读写 64 位整数。推荐使用 cin、cout 流(也可以使用 %I64d 格式符)。
输出格式
如果医生总共完成的检查次数少于 $k$ 次,则输出一个数字“-1”(不含引号)。否则,输出一行按顺序排列的动物编号,表示此时队列的情况。
注意输出的序列可能为空。在这种情况下,你可以什么都不输出,也可以只输出一个回车,两者都会被接受。
说明/提示
对于第一个样例:
- 检查前:$ \{1,2,3\} $
- 第一次检查后:$ \{2,3\} $
- 第二次检查后:$ \{3,2\} $
- 第三次检查后:$ \{2\} $
对于第二个样例:
- 检查前:$ \{1,2,3,4,5,6,7\} $
- 第一次检查后:$ \{2,3,4,5,6,7\} $
- 第二次检查后:$ \{3,4,5,6,7,2\} $
- 第三次检查后:$ \{4,5,6,7,2,3\} $
- 第四次检查后:$ \{5,6,7,2,3\} $
- 第五次检查后:$ \{6,7,2,3,5\} $
- 第六次检查后:$ \{7,2,3,5,6\} $
- 第七次检查后:$ \{2,3,5,6\} $
- 第八次检查后:$ \{3,5,6,2\} $
- 第九次检查后:$ \{5,6,2,3\} $
- 第十次检查后:$ \{6,2,3\} $
由 ChatGPT 5 翻译