Олимпиадный тренинг

Задача . B. Эпплджек и хранилища


Этот год в Эквестрии выдался урожайным, и Эпплджек захотела построить новые хранилища для яблок. По советам проектировщиков фермы она решила построить два хранилища ненулевой площади: одно в форме квадрата, другое в форме прямоугольника (который, возможно, тоже является квадратом).

Хранилища Эпплджек будет строить из досок, на каждую сторону хранилища она собирается потратить ровно одну доску. Доски она может заказать в одной фирме у своего приятеля. Изначально на складе фирмы есть \(n\) досок, длины которых Эпплджек известны. Работа фирмы не стоит на месте, она периодически получает заказы и сама заказывает новые доски. Приятель Эпплджек может предоставить ей информацию о всех операциях. Для удобства он будет сообщать информацию в следующем формате:

  • \(+\) \(x\) — на склад поступила доска с длиной \(x\)
  • \(-\) \(x\) — со склада отгрузили доску с длиной \(x\) (при этом гарантируется, что на складе были какие-то доски длины \(x\))

Эпплджек пока не определилась, когда она будет заказывать доски, поэтому она хочет после каждого события на складе знать, может ли она заказать доски, чтобы построить прямоугольное и квадратное хранилища. Эпплджек занята сбором яблок, поэтому у нее нет времени на подсчеты, и она попросила вас помочь ей!

Напоминаем, что у квадрата все четыре стороны равны, а у прямоугольника две пары равных сторон.

Входные данные

Первая строка содержит одно целое число \(n\) (\(1 \le n \le 10^5\)) — изначальное количество досок на складе фирмы, вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^5\)) — длины досок.

Третья строка содержит одно целое число \(q\) (\(1 \le q \le 10^5\)) — количество событий в фирме. Каждая из следующих \(q\) строк содержит описание событий в данном формате: сначала идет тип события (символ \(+\) или \(-\)), а затем число \(x\) (\(1 \le x \le 10^5\)).

Выходные данные

После каждого события на фирме выведите «YES», если из досок на складе фирмы можно собрать два хранилища нужной формы, и «NO» иначе (без кавычек). Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примечание

После второго события Эпплджек может построить прямоугольное хранилище из досок с длинами \(1\), \(2\), \(1\), \(2\) и квадратное хранилище из досок с длинами \(1\), \(1\), \(1\), \(1\).

После шестого события Эпплджек может построить прямоугольное хранилище из досок с длинами \(1\), \(1\), \(1\), \(1\) и квадратное хранилище из досок с длинами \(2\), \(2\), \(2\), \(2\).


Примеры
Входные данныеВыходные данные
1 6
1 1 1 2 1 1
6
+ 2
+ 1
- 1
+ 2
- 1
+ 2
NO
YES
NO
NO
NO
YES

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя