在这个问题中,你必须模拟单线程服务器的工作流程。有n要处理的查询,tn将在此时收到i-th并且需要处理dn时间单位。都tn保证是不同的。
当查询出现时,服务器可能会以三种可能的方式做出反应:
一旦服务器完成处理某些查询,它就会从队列中选择一个新查询(当然,如果它不为空)。如果在某个时刻出现新查询x,并且服务器在同一时刻完成处理另一个查询,我们认为第一个查询是从队列中选取的,然后才出现新查询。
对于每个查询,查找服务器完成处理它的时刻,如果此查询将被拒绝,则打印 -1。
5 1 2 9 4 8 10 9 15 2 19 1
11 19 -1 21 22
4 1 2 8 4 8 10 9 15 2
10 18 27 -1
输入的第一行包含两个整数n和b (1≤n,b≤200000) — 查询数和查询队列的最大可能大小。
然后跟随n带有查询说明的行(按时间顺序)。每个描述由两个整数组成 ti 和di (1≤ti,di≤109),其中 ti 是i-th 查询出现并di 是服务器需要处理它的时间。保证 ti-1<ti 对于所有i>1成立 。
5 1
2 9
4 8
10 9
15 2
19 1
11 19 -1 21 22