12071. Обробити запити


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

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

У нас є \(N\) коробок, пронумерованих від 1 до \(N\), які спочатку порожні, і необмежена кількість чистих карток.

Обробляйте \(Q\) запитів по порядку. Нижче наведено три типи запитів.

  • \(1\) \(i\) \(j\) : виведіть число \(i\) на порожній картці та помістіть його в поле \(j\).
  • \(2\) \(i\) : Повідомте всі числа, написані на картках у полі \(i\), у порядку зростання.
  • \(3\) \(i\) : Повідомте всі номери коробок, які містять картку з номером \(i\), у порядку зростання.

Тут зверніть увагу на наступне.

  • У запиті другого типу, якщо поле \(i\) містить кілька карток з однаковим номером, це число має бути надруковано стільки разів, скільки дорівнює кількості цих карток.
  • У запиті третього типу, навіть якщо коробка містить кілька карток з номером \(i\), номер цієї коробки слід друкувати лише один раз.

Обмеження

  • \(1≤N,Q≤2×10^5\)

Для запиту першого типу:

  • \(1≤i≤2×10^5\)
  • \(1≤j≤N\)

Для запиту другого типу:

  • \(1≤i≤N\)
  • Коробка \(i\) містить декілька карток коли задано цей запит.

Для запиту третього виду:

  • \(1≤i≤2×10^5\)
  • Деякі поля містять картку з номером \(i\), коли задано цей запит.

Повідомляється не більше \(2×10^5\) чисел.

Усі значення у вхідних даних є цілими числами.

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

Перший рядок містить ціле число \(N\).

Другий рядок містить ціле число \(Q\).

Наступні  \(Q\) рядків містять запити \(q_i\).

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

Дайте відповіді на запитання другого і третього роду по порядку.

Для кожного з цих запитів виведіть один рядок, що містить елементи, про які потрібно повідомити, у порядку зростання, з пробілами між ними.

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

5
8
1 1 1
1 2 4
1 1 4
2 4
1 1 4
2 4
3 1
3 2

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

1 2
1 1 2
1 4
4

Давайте опрацюємо запити по порядку.

Напишіть 1 на картці та покладіть її в поле 1.

Напишіть 2 на картці та покладіть його в поле 4.

Напишіть 1 на картці та покладіть його в поле 4.

У поле 4 містяться картки з цифрами 1 і 2.

  • Виведіть 1 і 2 у такому порядку.

Напишіть 1 на картці та покладіть її в поле 4.

У поле 4 містяться картки з числами 1, 1 і 2.

  • Зауважте, що ви повинні надрукувати 1 двічі.

Коробки 1 і 4 містять картку з номером 1.

  • Зауважте, що ви повинні надрукувати 4 лише один раз, навіть якщо коробка 4 містить дві картки з номером 1.

Коробка 4 містить картку з номером 2.

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

1
5
1 1 1
1 2 1
1 200000 1
2 1
3 200000

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

1 2 200000
1

Коментарі

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