#HX1259B. 打印队列

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB
    ID: 10117 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 普及 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1259-栈 队列 map

题目描述

题目描述

学生会里只有一台打印机,但是有很多文件需要打印,因此打印任务不可避免地需要等待。有些打印任务比较急,有些不那么急,所以每个任务都有一个 1∼9 间的优先级,优先级越高表示任务越急。

打印机的运作方式如下:首先从打印队列里取出一个任务 J,如果队列里有比 J 更急的任务,则直接把 J 放到打印队列尾部,否则打印任务 J(此时不会把它放回打印队列)。

给定打印队列中各个任务的优先级,以及所关注的任务在队列中的位置(队首位置为 0),求该任务完成的时刻。所有任务都需要 1 分钟打印。

例如,打印队列为 {1,1,9,1,1,1},目前处于队首的任务最终完成时刻为 5。

输入格式

多组数据,第一行一个整数 T,表示了有 T 组数据。

每组数据,第一行两个整数 n,m,分别表示队列中任务数量,以及所关注任务的位置。

接下来一行 n 个数,分别表示 n 个任务的优先级。

输出格式

每组数据输出一行,表示所关注任务的完成时刻。

样例输入

3
1 0
5
4 2
1 2 3 4
6 0
1 1 9 1 1 1

样例输出

1
2
5

提示

对于 100% 的数据,T10,0m<n1000T\le 10,0\le m\lt n\le 1000

1
1 0
5
1
3
1 0
1
1 0
5
1 0
9
1
1
1
2
5 4
9 8 7 6 1
4 3
8 7 6 1
5
4