#P1331. 2024.11.13-秋招-第1题-最后超时的定时任务索引号

2024.11.13-秋招-第1题-最后超时的定时任务索引号

题目内容

有这样一个定时器系统:

(1)(1)该系统精度为11刻度、可容纳nn个超时任务(即容量为nn);

(2)(2)每个任务里包含该任务超时时刻tt(当系统时钟到达t时,该任务开始执行),tt为正整数;

(3)(3)同一时刻超时的任务按照加入系统的先后顺序依次执行超时任务;

(4)(4)当定时器系统中任务数不足nn个时,可直接添加定时任务;

(5)(5)当定时器系统中任务数达到nn个时,假定待添加任务的超时时刻为titi,系统中最后执行的任务的超时时刻为tjtj;

如果ti>tjti > tj,丢弃待添加的任务;否则丢弃系统中最晚执行的超时任务,并将待添加任务加入系统中。

现给定该定时器系统容量nn,短时内(不到11刻度)依次向该定时器系统添加mm个定时任务taskstasks,假定当前时钟为00时刻,即向该定时器系统添加的任务都是尚未超时的任务。

请输出该定时器系统中最后超时的任务索引号,其中索引号是指:当前tasktasktaskstasks中的下标(下标从00开始计);如果多个任务同时超时,请输出最大的索引号。

输入描述

第一行:定时器系统容量n;1<=n<=103n;1<=n<=10^3

第二行:定时任务数m;1<=m<=106m;1<= m<=10^6

第三行:定时任务列表内容taskstasks,每个数据通过空格隔开;1<=tasks[i]<=1051<= tasks[i]<=10^5

输出描述

输出最后超时的任务索引号

样例1

输入

2
12
1 2 3 4 6 19 20 21 22 23 25 1

输出

11

说明

定时器系统容量为22,最多容纳22个定时任务,因此最终定时器里只会存在两个任务:

分别是11(索引号00)、11(索引号1111),这两个任务同时超时,题目要求返回更大的索引,因此返回1111

样例2

输入

1
2
10 2

输出

1 

说明

定时器系统容量为11,最多容纳11个定时任务,因此最终定时器里只会存在11个任务:

22:

22对应索引号为11,因此返回11

样例3

输入

20
5
1 2 3 4 5

输出

4

说明

定时器系统容量为2020,最多容纳2020个定时任务,而添加的任务数为55,没有超过定时器系统规格,因此最终定时器里会存在以下任务:1 2 3 4 51\ 2\ 3\ 4\ 5;

55最晚超时,因此返回55对应的下标44