Codeforces Round 935 (Div. 3) |
---|
Закончено |
Наконец-то, обед!
$$$n$$$ школьников выстроились в длинную очередь к палатке повара за кашей. Повар будет выдавать кашу в течение $$$D$$$ минут. Школьник, который стоит на $$$i$$$-м месте в очереди, имеет приоритет $$$k_i$$$ и съедает одну порцию каши за $$$s_i$$$ минут.
В начале каждой минуты перерыва повар накладывает первому в очереди школьнику одну порцию каши, после этого школьник уходит есть свою порцию. Если $$$i$$$-му школьнику выдали порцию в начале $$$x$$$-й минуты, то он вернётся в очередь в конце $$$(x + s_i)$$$-й минуты.
Когда $$$i$$$-й школьник возвращается в очередь, школьники в конце очереди, приоритет которых строго меньше, чем у $$$i$$$-го школьника, должны пропустить его. Таким образом, он встанет в очередь за последним из школьников, приоритет которого не меньше, чем его собственный. То есть за последним школьником $$$j$$$, у которого $$$k_j \ge k_i$$$. Если в очереди нет ни одного такого школьника, то $$$i$$$-й школьник встаёт в начало очереди.
Если несколько школьников возвращаются в одно время, то они вернутся в очередь в порядке возрастания их $$$s_i$$$.
Например, если $$$n = 3$$$, $$$D = 3$$$, $$$k = [2, 3, 2]$$$ и $$$s = [2, 1, 3]$$$, то выдача будет происходить следующим образом:
Определите, через какое минимальное количество минут после начала перерыва каждый школьник получит кашу хотя бы один раз или сообщите, что за $$$D$$$ минут этого не произойдёт.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$D$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$1 \le D \le 3\cdot 10^5$$$) — количество школьников в очереди и время перерыва соответственно.
Следующие $$$n$$$ строк содержат по два целых числа $$$k_i$$$ и $$$s_i$$$ ($$$1 \le k_i, s_i, \le 10^9$$$) — приоритет и время поедания одной порции каши для очередного школьника. Школьники заданы в порядке, в котором они стоят в очереди (от начала к концу).
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$. Аналогично гарантируется, что сумма значений $$$D$$$ по всем наборам входных данных не превосходит $$$3\cdot 10^5$$$.
Для каждого набора входных данных выведите минимальное количество минут, через которое каждый школьник получит кашу хотя бы один раз. Если этого не произойдёт за время перерыва, выведите $$$-1$$$.
73 32 23 12 35 1010 37 111 35 16 15 204 27 28 51 53 15 171 38 28 32 21 15 148 24 21 38 36 41 114 55 148 24 21 38 36 4
3 -1 12 6 6 1 6
Название |
---|