/ Vijos / 题库 /

车载音乐

车载音乐

时间限制: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

信息

ID
2245
难度
9
分类
模拟 点击显示
标签
(无)
递交数
1
已通过
1
通过率
100%
被复制
4
上传者