该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
问题描述
在一个炎热的午后, Alex 决定和朋友们玩倒水游戏。Alex 准备了 N(1≤N≤1,000) 瓶水,按 1..N 依次编号。
倒水的顺序则是按照 Alex 自己设计的玩法来决定:
- 第 i 瓶水有一个初始容量 Ai (1≤Ai≤10,000)。
- 当一瓶水被倒干净后,接下来倒的将是所有瓶水中容量最大的那瓶(如果有两瓶或多瓶水的容量相同,那么这些水瓶中编号最小的那瓶会被选中)。
- 一瓶水在倒的时候,它的容量会被平均地分给其他 N−1 瓶水,它本身的容量清零。
- 如果一瓶水的容量无法被平均分配(也就是说,无法被 N−1 整除),那么被 N−1 除的余数部分将会以 1 为单位,顺次分配给编号靠前的水瓶(也就是说,顺序为水瓶 1 、水瓶2⋯ 依次下去。当然,被倒的那瓶需要被跳过),直到多出的部分被分配完。
在选定下一瓶水后,这个算法再次被执行,调整所有水瓶的容量,并选出再接下来要倒的水瓶。
请你计算一下,按 Alex 的算法,最先被倒的 T (1≤T≤1000) 瓶水分别是哪些。
输入格式
第 1 行有两个用空格隔开的整数:N 和 T。
第 2 至第 N+1 行,第 i+1 行为 1 个整数 Ai。
输出格式
输出共 T 行,第 i 行输出一个整数,表示 被倒的第 i 瓶水。
样例输入
3 4
10
8
11
样例输出
3
1
2
3
说明
每一瓶水被倒出来之前,三瓶水的容量分别为:
- [10,8,11]。倒出第3瓶,11/2=5,余量为 1。
- [16,13,0]。倒出第1瓶,16/2=8。
- [0,21,8]。倒出第2瓶,21/2=10,余量为 1。
- [11,0,18]。倒出第3瓶,……
数据范围
对于 30%的数据,保证有 N≤100, T≤100, 1≤Ai≤1000;
对于 60%的数据,保证有N≤500, T≤500, 1≤Ai≤5000;
对于全部的数据,保证有N≤1000, T≤1000, 1≤Ai≤10,000。