11976. Соціальна мережа
Степан керує SNS "Twidai", яка має \(N\) користувачів пронумерованих від користувача 1 до користувача \(N\). У Twidai користувачі можуть підписуватися на інших користувачів або відмовлятися від них. Операції \(Q\) виконувалися з моменту запуску Twidai. \(i\)-та (\(1≤i≤Q\)) операція представлена трьома цілими числами \(T_i\) , \(A_i\) та \(B_i\) , значення яких такі:
Якщо \(T_i\) =1: це означає, що користувач \(A_i\) стежить за користувачем \(B_i\) . Якщо користувач \(A_i\) вже стежить за користувачем \(B_i\) на момент виконання цієї операції, це не вносить жодних змін.
Якщо \(T_i\) =2: це означає, що користувач \(A_i\) скасував підписку на користувача \(B_i\) . Якщо користувач \(A_i\) не стежить за користувачем \(B_i\) під час цієї операції, це не вносить жодних змін.
Якщо \(T_i =3\): це означає, що вас попросять визначити, чи користувачі \(A_i\) та \(B_i\) стежать один за одним. Вам потрібно вивести Yes, якщо користувач \(A_i\) стежить за користувачем \(B_i\) , а користувач \(B_i\) стежить за користувачем \(A_i\) , і No в іншому випадку.
Коли сервіс був запущений, жоден користувач не стежив за жодним користувачем. Виведіть правильні відповіді для всіх операцій, для яких \(T_i =3\) у порядку зростання \(i\).
Обмеження
- \(2≤N≤10^9\)
- \(1≤Q≤2×10^5\)
- \(T_i =1,2,3 (1≤i≤Q)\)
- \(1≤A_i ≤N (1≤i≤Q)\)
- \(1≤B_i ≤N (1≤i≤Q)\)
- \(A_i \neq B_i (1≤i≤Q)\)
- Існує таке \(i\) \((1≤i≤Q)\), що \(T_i =3\).
- Усі значення у вхідних даних є цілими числами.
Формат вхідних даних
Перший рядок містить цілі числа \(N, Q\).
Наступні \(Q\) рядків містять цілі числа \(T_i, A_i, B_i\).
Формат вихідних даних
У вихідний потік виведіть \(X\) рядків, де \(X\) — кількість \(i\) \((1≤i≤Q)\), для якої \(T_i =3\). \(j\)-й \((1≤j≤X)\) рядок має містити відповідь на \(j\)-ту операцію таку, що \(T_i =3\).
Приклад вхідних даних
3 9
1 1 2
3 1 2
1 2 1
3 1 2
1 2 3
1 3 2
3 1 3
2 1 2
3 1 2
Приклад вихідних даних
No
Yes
No
No
Twidai має трьох користувачів. Дев'ять операцій є такими.
- Користувач 1 слідкує за користувачем 2. Жодні інші користувачі не слідкують за ними.
- Визначте, чи стежать користувачі 1 і 2 один за одним. Користувач 1 стежить за користувачем 2, але користувач 2 не стежить за користувачем 1, тому правильною відповіддю на цю операцію є No.
- Користувач 2 стежить за користувачем 1.
- Визначте, чи стежать користувачі 1 і 2 один за одним. Користувач 1 слідкує за користувачем 2, а користувач 2 слідкує за користувачем 1, тому правильною відповіддю на цю операцію є «Yes».
- Користувач 2 слідкує за користувачем 3.
- Користувач 3 слідкує за користувачем 2.
- Визначте, чи стежать користувачі 1 і 3 один за одним. Користувач 1 не слідкує за користувачем 3, а користувач 3 не стежить за користувачем 1, тому правильною відповіддю на цю операцію є No.
- Користувач 1 скасовує підписку на користувача 2.
- Визначте, чи стежать користувачі 1 і 2 один за одним. Користувач 2 слідкує за користувачем 1, але користувач 1 не слідкує за користувачем 2, тому No є правильною відповіддю на цю операцію.
Приклад вхідних даних
2 8
1 1 2
1 2 1
3 1 2
1 1 2
1 1 2
1 1 2
2 1 2
3 1 2
Приклад вихідних даних
Yes
No
Користувач може стежити за одним користувачем кілька разів.
Приклад вхідних даних
10 30
3 1 6
3 5 4
1 6 1
3 1 7
3 8 4
1 1 6
2 4 3
1 6 5
1 5 6
1 1 8
1 8 1
2 3 10
1 7 6
3 5 6
1 6 7
3 6 7
1 9 5
3 8 6
3 3 8
2 6 9
1 7 1
3 10 8
2 9 2
1 10 9
2 6 10
2 6 8
3 1 6
3 1 8
2 8 5
1 9 10
Приклад вихідних даних
No
No
No
No
Yes
Yes
No
No
No
Yes
Yes
Коментарі