10640: Dynamic connectivity offline - 1


Відправити розв'язок

Бали: 100 (partial)
Time limit: 5.0s
Memory limit: 512M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

Є пустий неорієнтований граф. Необхідно опрацювати наступні запити.

\(0 V1 V2\) - додати ребро між вершинами \(V1\) та \(V2\). Гарантується що в даний момент такого ребра немає в графі.
\(1 V1 V2\) - видалити ребро між вершинами \(V1\) та \(V2\). Гарантується що таке ребро існує в графі в даний момент
\(2 V1 V2\) - перевірити чи вершини \(V1\) та \(V2\) знаходяться в одній компоненті зв'язності (існує шлях з вершини \(V1\) у вершину \(V2\))

Формат вхідних даних

Перший рядок містить два цілих числа \(N,M\) - кількість вершин та кількість запитів. (\(1 \le N \le 5000\)), (\(0 \le M \le 500000\))
Кожен з наступних \(M\) рядків містить три числа \(type V1 V2\) - які позначають відповідний запит.

Формат вихідних даних

Для кожного запиту \(type=2\) виведіть Y якщо вершини лежать в одній компоненті зв'ясності, і N - якщо в різних.

А якщо можливо, то виведіть номера політиків (кожне в окремому рядку) які мають бути присутні на засіданні.

Якщо розв'язків є декілька - виведіть, будь-який.

Приклад вхідних даних-1

200 5
2 123 127
0 123 127
2 123 127
1 127 123
2 123 127

Приклад вихідних даних-1

N
Y
N

Приклад вхідних даних-2

4 10
0 1 2
0 2 3
0 3 1
2 1 4
0 4 3
2 1 4
1 2 3
2 1 4
1 1 3
2 1 4

Приклад вихідних даних-2

N
Y
Y
N

Коментарі

Ще немає коментарів.