Kotlin Heroes: Episode 11 |
---|
Закончено |
Перед приемом к двум врачам выстроились $$$2$$$ очереди пациентов. Первый врач принимает пациентов в обычном порядке очереди — кто раньше пришел, того он раньше и примет. А второй врач делает наоборот — принимает сначала тех, кто пришел позже всех. То есть, к первому врачу стоит очередь, а ко второму — стек. Один пациент может одновременно стоять и в очереди, и в стеке. Каждый пациент характеризуется временем, которое займет его визит ко врачу (время одинаковое для обоих врачей).
Когда начнется прием, врачи будут принимать пациентов в порядке очереди и стека соответственно. Как только врач закончит с одним пациентом, он вызовет следующего.
Но есть одна проблема: если пациент стоял и в очереди, и в стеке, и его вызвали сначала к одному врачу, а потом к другому, пока он не успел выйти от первого, начнется неразбериха. Допустимо, чтобы пациент пошел ко второму врачу в тот же момент времени, в который вышел от первого врача.
Текущая конфигурация очереди и стека называется хорошей, если врачи могут принять всех пациентов, и при этом не возникнет неразбериха.
Изначально очередь и стек пусты. Поступают запросы трех типов:
Гарантируется, что после каждого запроса каждый пациент занимает не более одного места в очереди и не более одного места в стеке.
После каждого запроса нужно узнать, является ли конфигурация хорошей.
В первой строке записано одно целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — количество запросов.
Во второй строке записаны $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — для каждого пациента время, которое займет его визит ко врачу.
В каждой из следующих $$$n$$$ строк записаны два целых числа $$$t$$$ и $$$x$$$ ($$$1 \le t \le 3$$$; $$$1 \le x \le n$$$) — тип запроса и номер пациента. Гарантируется, что:
После каждого запроса выведите «YES», если текущая конфигурация является хорошей, и «NO» в противном случае.
310 15 41 12 12 2
YES NO YES
72 5 1 5 5 4 81 12 51 22 33 21 23 1
YES YES YES YES YES NO NO
В первом тесте следующие конфигурации:
Во втором тесте конфигурации после запроса $$$4$$$ следующая конфигурация:
После запроса $$$5$$$ следующая конфигурация:
После запроса $$$6$$$ следующая конфигурация:
Пациент $$$2$$$ должен быть у двух врачей одновременно.
После запроса $$$7$$$ следующая конфигурация:
Пациент $$$2$$$ должен быть у двух врачей одновременно.
Название |
---|