Codeforces Round 431 (Div. 1) |
---|
Закончено |
Не буду ни грустить, ни страдать от одиночества... пока всё не закончится.
Нитка из n бусинок оставлена, как сообщение об уходе. Бусинки пронумерованы от 1 до n слева направо, каждая имеет форму, выраженную целым числом от 1 до n, включительно. Некоторые бусинки могут иметь одинаковую форму.
Память формы x в некотором отрезке бусинок определена как разность между последней и первой позициями, где форма x встречается на этом отрезке. Память подотрезка бусинок равняется сумме памяти по всем формам, встречающимся на этом отрезке.
Иногда формы бусинок меняются, и с ними меняются значения памяти. Иногда вам нужно находить память для некоторых подотрезков.
В первой строке заданы два целых числа n и m (1 ≤ n, m ≤ 100 000) — число бусинок и суммарное число изменений формы и запросов памяти.
Во второй строке задано n целых чисел a1, a2, ..., an (1 ≤ ai ≤ n) — начальные формы бусинок 1, 2, ..., n, соответственно.
Далее, в m строках заданы запросы памяти и изменения формы бусинок, по одному в строке. Строка имеет вид:
Для каждого запроса выведите отдельную строку с величиной памяти данного отрезка.
7 6
1 2 3 1 3 2 1
2 3 7
2 1 3
1 7 2
1 3 2
2 1 6
2 5 7
5
0
7
1
7 5
1 3 2 1 4 2 3
1 1 4
2 2 3
1 1 7
2 4 5
1 1 7
0
0
В начале формы бусинок имеют вид (1, 2, 3, 1, 3, 2, 1).
Рассмотрим запросы и изменения формы по очереди:
Название |
---|