#P1331. 2024.11.13-秋招-第1题-最后超时的定时任务索引号
-
ID: 178
Type: Default
1000ms
256MiB
Tried: 64
Accepted: 13
Difficulty: 3
Uploaded By:
TaZi
Tags>优先队列
2024.11.13-秋招-第1题-最后超时的定时任务索引号
题目内容
有这样一个定时器系统:
(1)该系统精度为1刻度、可容纳n个超时任务(即容量为n);
(2)每个任务里包含该任务超时时刻t(当系统时钟到达t时,该任务开始执行),t为正整数;
(3)同一时刻超时的任务按照加入系统的先后顺序依次执行超时任务;
(4)当定时器系统中任务数不足n个时,可直接添加定时任务;
(5)当定时器系统中任务数达到n个时,假定待添加任务的超时时刻为ti,系统中最后执行的任务的超时时刻为tj;
如果ti>tj,丢弃待添加的任务;否则丢弃系统中最晚执行的超时任务,并将待添加任务加入系统中。
现给定该定时器系统容量n,短时内(不到1刻度)依次向该定时器系统添加m个定时任务tasks,假定当前时钟为0时刻,即向该定时器系统添加的任务都是尚未超时的任务。
请输出该定时器系统中最后超时的任务索引号,其中索引号是指:当前task在tasks中的下标(下标从0开始计);如果多个任务同时超时,请输出最大的索引号。
输入描述
第一行:定时器系统容量n;1<=n<=103
第二行:定时任务数m;1<=m<=106
第三行:定时任务列表内容tasks,每个数据通过空格隔开;1<=tasks[i]<=105。
输出描述
输出最后超时的任务索引号
样例1
输入
2
12
1 2 3 4 6 19 20 21 22 23 25 1
输出
11
说明
定时器系统容量为2,最多容纳2个定时任务,因此最终定时器里只会存在两个任务:
分别是1(索引号0)、1(索引号11),这两个任务同时超时,题目要求返回更大的索引,因此返回11
样例2
输入
1
2
10 2
输出
1
说明
定时器系统容量为1,最多容纳1个定时任务,因此最终定时器里只会存在1个任务:
2:
2对应索引号为1,因此返回1
样例3
输入
20
5
1 2 3 4 5
输出
4
说明
定时器系统容量为20,最多容纳20个定时任务,而添加的任务数为5,没有超过定时器系统规格,因此最终定时器里会存在以下任务:1 2 3 4 5;
5最晚超时,因此返回5对应的下标4
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 56ms
- Powered by Hydro v4.14.1 Community