Очередь на принтере

Задача по программированию с проверкой онлайн

Сложность
Лёгкая
Языки
Python
JavaScript
TypeScript
Java
Go
Темы
Классы и ООП
Стек, очередь, связные списки

Принтер берёт задания по порядку поступления и печатает по одной странице за операцию. Сначала очередь пуста. Реализуйте операции:

  • submit (задание, страницы): добавить в конец очереди задание с номером и числом страниц (оба положительны, номера в очереди не повторяются); результат — длина очереди после добавления;
  • print_page: напечатать одну страницу первого задания. Если это была его последняя страница, задание уходит из очереди и результат — его номер; если остались страницы, результат 0; если очередь пуста, результат -1;
  • pending_pages: результат — сумма страниц, оставшихся во всех заданиях очереди.

Верните список результатов, по одному на операцию. values[i] — аргументы операции i.

Пример: ["submit", "submit", "print_page", "print_page", "print_page", "print_page"], [[1, 2], [2, 1], [], [], [], []] → [1, 2, 0, 1, 2, -1].


Источник: задача CodeShare

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки