抢占打印机 (printer)
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
抢占打印机 (printer)
题目背景
期末考试快到了,蒙自一中图书馆唯一的自助打印机前排起了长龙。由于大家都要复习,争分夺秒,为了保证公平,学校学生会制定了严格的“限流”打印规则。
题目描述
当前队伍里一共有 名同学(从前到后编号为 )。第 名同学手里有 U 盘,他一共需要打印 张复习资料。
打印机的规则如下:
1.每次只能队伍的第一名同学使用打印机。 2.每个人每次只能打印 1 张资料。打印 1 张资料需要消耗 1 秒钟。 3.如果这名同学打印完这 1 张后,他的资料还没有全部印完,他必须立刻抱着书包跑到队伍的最末尾重新排队。 4.如果他已经印完了自己需要的所有资料,他就可以直接离开图书馆回教室复习了。 (忽略同学们交换位置、走路走到队尾的时间,统统视为 0 秒)
小明排在队伍的第 个位置(即初始编号为 )。他非常焦急,想知道自己彻底印完最后一张资料,可以离开图书馆的那一瞬间,一共过去了多少秒?
输入格式
第一行包含两个正整数 和 ,分别表示队伍里的总人数,以及小明的初始位置。 第二行包含 个正整数 ,依次表示从队首到队尾每个人需要打印的总张数。数字之间用空格隔开。
输出格式
输出一个整数,表示小明印完自己最后一张资料所需的总秒数。
输入输出样例
样例输入 1
3 2
2 3 1
样例输出 1
6
样例 1 解释
第 1 秒:1号同学印 1 张(还剩 1),排到队尾。当前队伍:[2, 3, 1] 第 2 秒:2号同学(小明)印 1 张(还剩 2),排到队尾。当前队伍:[3, 1, 2] 第 3 秒:3号同学印 1 张(还剩 0),印完离开!当前队伍:[1, 2] 第 4 秒:1号同学印 1 张(还剩 0),印完离开!当前队伍:[2] 第 5 秒:2号同学(小明)印 1 张(还剩 1),排到队尾。当前队伍:[2] 第 6 秒:2号同学(小明)印 1 张(还剩 0),印完离开!一共耗时 6 秒。
样例输入 2
5 4
10000000 10000000 10000000 10000000 10000000
样例输出 2
49999999
(提示:请不要尝试用队列一步步去模拟样例 2,否则你的程序会运行到明天早上)
数据范围与约定
对于 的数据,,。(允许使用队列暴力模拟) 对于 的数据,,。 对于 的数据,,。
【特别提醒】:最终的答案可能会非常大,超过 32 位整数的范围。使用 C++ 的同学请务必使用 long long 类型!
2026年蒙自一中与北京理工大学联合冬令营结营测试
- Status
- Done
- Rule
- IOI
- Problem
- 6
- Start at
- 2026-3-2 8:00
- End at
- 2026-3-2 11:51
- Duration
- 3.9 hour(s)
- Host
- Partic.
- 102