车载音乐
测试数据来自 system/2245
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
时间限制:1秒 内存限制:256M
【题目描述】
小H的车载音乐盘里存了 \(N\) 首歌曲,按 \(1..N\) 依次编号。这些歌曲的播放顺序按小H设定的算法进行:
◆ 每首歌曲都设定了一个优先级 \(P_i\)。
◆ 当新播放一首歌曲时,都选择所有歌曲中优先级最大的那首(如果有两首或多首歌曲的优先级相同,那么这些歌曲中编号最小的那首会被选中)。
◆ 一首歌曲在播放完后,它的优先级会被平均地分给其他 \(N-1\) 首歌曲,它本身的优先级清零。
◆ 如果一首歌曲的优先级无法被平均分配(也就是说,无法被 \(N-1\) 整除),那么被 \(N-1\) 除的余数部分将会以 1 为单位,顺次分配给排名靠前的歌曲(也就是说,顺序为曲目1、曲目2...依次下去。当然,刚播放过的那首歌曲需要被跳过),直到多出的部分被分配完。
在选定的一首歌曲播放完毕后,这个算法再次被执行,调整歌曲的优先级,并选出再接下来播放的曲目。
请你计算一下,按小H的算法,最先播放的 \(T\) 首歌曲分别是哪些?
【输入格式】
第一行是两个用空格隔开的整数 \(N\) 和 \(T\)。
接下来有 \(N\) 行,第 \(i+1\) 行为一个整数 \(P_i\),表示第 \(i\) 首歌曲的优先级。
【输出格式】
共有 \(T\) 行,第 \(i\) 行的整数表示播放的第 \(i\) 首歌曲的编号。
【输入输出样例】
Input
3 4
10
8
11
Output
3
1
2
3
【输入输出样例解释】
U盘中存了 3 首歌曲,初始优先级依次为 10,8,11。你的任务是指出它播放的前4首歌曲依次是哪些。选择过程如下:
每一首歌曲播放前,三首歌曲的优先级分别为:
P1 P2 P3
10 8 11 -> 播放 #3 11/2 = 5, 优先级余量 = 1
16 13 0 -> 播放 #1 16/2 = 8
0 21 8 -> 播放 #2 21/2 = 10, 优先级余量 = 1
10 0 19 -> 播放 #3 ...
【数据限制】
对于 \(100\%\) 的数据,\(1≤N≤1000\),\(1≤P_i≤10000\),\(1≤T≤1000\)。
【来源】
Mr.he