Codeforces Round 996 (Div. 2) |
---|
Закончено |
В следующее новолуние вселенная сбросится, начиная с Флориды. Мужчина из Флориды должен остановить это, но сначала ему нужно найти важный артефакт. |
Есть $$$n$$$ стогов сена, пронумерованных от $$$1$$$ до $$$n$$$, где стог сена $$$i$$$ содержит $$$a_i$$$ тюков сена. Под одним из стогов сена возможно спрятана иголка, но вы не знаете, под каким именно. Ваша задача состоит в том, чтобы переместить тюки сена так, чтобы каждый стог сена был пустым хотя бы один раз, что позволит вам проверить, спрятана ли иголка под этим конкретным стогом сена.
Однако этот процесс не так прост. Как только стог сена $$$i$$$ будет опустошен в первый раз, ему будет присвоено ограничение по высоте, и он больше не сможет содержать более $$$b_i$$$ тюков сена. Более формально ход описывается следующим образом:
Обратите внимание: Перед опустошением стога его высота не ограничена, и вы можете переместить в этот стог столько тюков, сколько захотите.
Найдите минимальное количество ходов, необходимых для того, чтобы каждый стог сена был опустошен хотя бы один раз, или сообщите, что это невозможно.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит единственное целое число $$$n$$$ ($$$2\le n\le 5\cdot 10^5$$$) — количество стогов сена.
В $$$i$$$-й из следующих $$$n$$$ строк содержится по два целых числа $$$a_i$$$ и $$$b_i$$$ ($$$1\le a_i, b_i\le 10^9$$$) — начальное количество тюков сена в $$$i$$$-м стоге сена и предел высоты, который ему присваивается после того, как он опустошается в первый раз.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — минимальное количество ходов, необходимое для обеспечения того, чтобы каждый стог сена был опустошен хотя бы один раз. Если невозможно опустошить каждый стог сена хотя бы один раз, выведите -1.
723 52 4210 11 1031 34 31 135 42 41 1062 13 35 41 51 61 853 21 21 11 36 525 107 12
8 -1 8 9 14 15 19
В первом наборе входных данных мы можем выполнить следующую последовательность действий:
Приведенная выше последовательность требует $$$3 + 5 = 8$$$ ходов. Невозможно использовать менее $$$8$$$ ходов, так как следующая последовательность ходов недопустима:
Во втором наборе входных данных задача невыполнима. Это связано с тем, что ограничения по высоте обоих стогов слишком малы, и как только один из стогов опустошается, другой стог не может стать пустым из-за небольших ограничений по высоте.
В третьем наборе входных данных можно показать, что следующая последовательность ходов является оптимальной:
Приведенная выше последовательность требует $$$1 + 3 + 1 + 3 = 8$$$ ходов.
Название |
---|