eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач

CHM

Ваша задача --- реализовать \textbf{Persistent Disjoint-Set-Union}. Что это значит? Про \textbf{Disjoint-Set-Union}: Изначально у вас есть \textbf{n} элементов. Нужно научиться отвечать на \textbf{2} типа запросов. \begin{itemize} \item \textbf{+ a b} --- объединить множества, в которых лежат вершины \textbf{a} и \textbf{b}; \item \textbf{? a b} --- сказать, лежат ли вершины \textbf{a} и \textbf{b} сейчас в одном множестве. \end{itemize} Про \textbf{Persistent}: Теперь у нас будет несколько копий (версий) структуры данных \textbf{Disjoint-Set-Union}. Запросы будут выглядеть так: \begin{itemize} \item \textbf{+ i a b} --- запрос к \textbf{i}-й структуре, объединить множества, в которых лежат вершины \textbf{a} и \textbf{b}. При этом \textbf{i}-я структура остается неизменной, создается новая версия, ей присваивается новый номер (какой? читайте дальше); \item \textbf{? i a b} --- запрос к \textbf{i}-й структуре, сказать, лежат ли вершины \textbf{a} и \textbf{b} сейчас в одном множестве. \end{itemize} \InputFile На первой строке \textbf{2} числа \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^5}) и \textbf{K} (\textbf{0} ≤ \textbf{K} ≤ \textbf{10^5}) --- число элементов и число запросов. Изначально все элементы находятся в различных множествах. Эта изначальная копия (версия) структуры имеет номер \textbf{0}. Далее следуют \textbf{K} строк, на каждой описание очередного запроса. Формат запросов описан выше. Запросы нумеруются целыми числами от \textbf{1} до \textbf{K}. При обработке \textbf{j}-го запроса вида \textbf{+ i a b}, новая версия получит номер \textbf{j}. Запросов к несуществующим версиям не будет (\textbf{j} > \textbf{i}). \OutputFile Для каждого запроса вида \textbf{? i a b} на отдельной строке нужно вывести \textbf{YES} или \textbf{NO}.
Лимит времени 2 секунды
Лимит использования памяти 256 MiB
Входные данные #1
4 7
+ 0 1 2
? 0 1 2
? 1 1 2
+ 1 2 3
? 4 3 1
? 0 4 4
? 4 1 4
Выходные данные #1
NO
YES
YES
YES
NO
Автор Сергей Копелиович
Источник Зимняя школа, Харьков 2011, День 5