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

Задача . C. Анонимность наше все


В работе врача важно сохранять анонимность своих клиентов и результатов анализов. Результаты теста отправляются каждому лично по электронной почте, но люди очень нетерпеливые и им хочется узнавать результаты сразу.

Именно поэтому в одном центре для сдачи анализов «Девитро» придумали экспериментальный способ сообщать результаты. Пусть всего анализы сдавало \(n\) человек в порядке очереди. Тогда главврач Стас может сделать несколько сообщений, в каждом из которых сообщить, был ли больной человек среди людей в очереди от \(l\)-го до \(r\)-го (включительно) для некоторых значений \(l\) и \(r\).

В процессе Стас будет проверять, насколько хорошо работает эта схема, и будет интересоваться, можно ли однозначно узнать результат анализа \(i\)-го человека по уже сообщенной информации. И если это сделать можно, то болен ли этот человек.

Помогите Стасу протестировать свою схему.

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

В первой строке находится два целых числа \(n\) и \(q\) (\(1 \le n, q \le 2 \cdot 10^5\)) — количество людей, сдавших анализы и количество запросов.

В каждой из следующих \(q\) строк находится описание запросов. Первое число в строке \(t\) (\(t = 0\) или \(t = 1\)) — тип запроса.

Если \(t = 0\), то дальше в этой строке находятся еще три целых числа \(l, r, x\) (\(1 \le l \le r \le n\), \(x = 0\) или \(x = 1\)). Этот запрос соответствует тому, что Стас сообщает, что среди людей от \(l\)-го до \(r\)-го (включительно) в очереди:

  • был больной, если \(x=1\),
  • не было больного, если \(x=0\).

Если \(t = 1\), то дальше в этой строке находится одно целое число \(j\) (\(1 \le j \le n\)) — номер пациента в очереди, чья конфиденциальность волнует Стаса.

Гарантируется, что все запросы корректны, то есть всегда существует пример очереди длины \(n\), для которой все озвученные результаты (утверждения из запросов, где \(t = 0\)) корректны.

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

После каждого вопроса Стаса (запроса с \(t = 1\)) выведите:

  • «NO», если пациент однозначно не болен,
  • «YES», если пациент однозначно болен,
  • «N/A», если по имеющейся информации нельзя однозначно сказать, болен пациент или нет.
Примечание

В первом тесте для первых пяти запросов:

  1. Изначально Стас сообщает, что среди \(4\), \(5\) людей нет больных.
  2. В следующем запросе Стас интересуется конфиденциальностью человека \(5\). Из предыдущего запроса мы знаем, что он однозначно не болен.
  3. В следующем запросе Стас интересуется конфиденциальностью человека \(6\). Мы не знаем про него вообще никакой информации, поэтому он может быть как болен, так и не болен.
  4. Затем Стас сообщает, что среди \(4\), \(5\), \(6\) людей есть больной.
  5. В следующем запросе Стас интересуется конфиденциальностью человека \(6\). Теперь мы можем однозначно сказать, что он болен, потому что из предыдущего запроса среди трех человек болен мог быть только он.

Примеры
Входные данныеВыходные данные
1 6 9
0 4 5 0
1 5
1 6
0 4 6 1
1 6
0 2 5 1
0 2 2 0
1 3
1 2
NO
N/A
YES
YES
NO

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

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