13020. Збирання чисел - 2


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

Бали: 100
Time limit: 1.0s
Memory limit: 250M

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

Вам надано масив, який містить кожне число між \(1…n\) рівно один раз. Ваше завдання зібрати числа від 1 до \(n\) у порядку зростання.

У кожному раунді ви проходите по масиву зліва направо і збираєте якомога більше чисел. Дано \(m\) операцій, які міняють місцями два числа в масиві. Ваше завдання — повідомити кількість раундів після кожної операції.

Обмеження

  • \(1≤n,m≤2⋅10^5\)
  • \(1≤a,b≤n\)

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

У першому рядку є два цілі числа \(n\) і \(m\): розмір масиву та кількість операцій.

У наступному рядку є \(n\) цілих чисел \(x_1 ​ , x_2 ​ ,…, x_n\) ​ : числа в масиві.

Нарешті, є \(m\) рядків, які описують операції. У кожному рядку є два цілих числа \(a\) і \(b\): числа на позиціях \(a\) і \(b\) поміняти місцями.

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

Вивести \(m\) цілих чисел: кількість раундів після кожної заміни.

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

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

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

2
3
4

Коментарі

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