Контест Middle Контейнеры STL изнутри обновлено

Бронирование переговорки на std::map

Условие

Система бронирования одной переговорки. Бронь это полуинтервал времени [s, e). Команды:

  • book s e: если интервал не пересекается ни с одной действующей бронью, добавить его и вывести OK, иначе BUSY (касание концами допустимо);
  • cancel s: отменить действующую бронь, начинающуюся ровно в s, и вывести CANCELLED, или NOT FOUND, если такой нет.

Ввод: q (1 ≤ q ≤ 2000), затем q команд. 0 ≤ s < e ≤ 10⁹.

Вывод: ответ на каждую команду.

Пример 1

Ввод:

5
book 10 20
book 15 25
book 20 30
cancel 10
book 5 15

Вывод:

OK
BUSY
OK
CANCELLED
OK

Пример 2

Ввод:

3
cancel 0
book 0 1
book 0 1

Вывод:

NOT FOUND
OK
BUSY

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.