Очередь печати
Просмотр в формате PDF
Submit solution
C++, Python
Очки:
170
Ограничение по времени:
2.0s
Ограничение по памяти:
256M
Автор:
Problem type
Allowed languages
Офисный сервер печати получил n заданий на печать. Задания пронумерованы от 1 до n в порядке поступления на сервер.
Для каждого задания известны:
- приоритет
p_i, - количество страниц
c_i.
Все задания поступают на сервер в момент времени 0.
Сервер обслуживает задания по следующим правилам:
- Когда принтер свободен, он выбирает среди всех ожидающих задание с максимальным приоритетом.
- Если заданий с таким приоритетом несколько, выбирается задание с наименьшим номером, то есть поступившее раньше.
- Печать выполняется без прерываний.
- На печать одной страницы требуется
1секунда.
Принтер начинает работу в момент времени 0.
Для каждого задания, в порядке фактического завершения печати, требуется определить:
- номер задания,
- момент времени, когда его печать завершится.
Входные данные
Первая строка содержит одно целое число n — количество заданий.
В следующих n строках содержится по два целых числа p_i и c_i — приоритет и количество страниц у i-го задания.
Выходные данные
Выведите n строк.
В i-й строке выведите два числа через пробел:
- номер задания, которое завершилось
i-м по счёту, - момент времени окончания его печати.
Ограничения
1 <= n <= 10^51 <= p_i <= 91 <= c_i <= 1000
Примеры
Пример 1
Входные данные
1
Выходные данные
1 0
Пример 2
Входные данные
2
Выходные данные
1 0
2 0
Комментарии