VK Cup 2016 - Раунд 2 |
---|
Закончено |
Маленький Артёмка изобрёл машину времени! Он может перемещаться во времени куда угодно, но, разумеется, все его мысли только о программировании. Он хочет использовать машину времени, чтобы улучшить известную структуру данных — мультимножество.
Артёмка хочет создать простое мультимножество для целых чисел. Он хочет поддерживать следующие операции:
Но что же насчёт машины времени? Если обычно Артёмка просто выполняет последовательность операций со своим мультимножеством, то теперь он умеет перемещаться в произвольные моменты времени и добавлять там новые операции! Давайте посмотрим на пример.
Заметьте, что Артёмка настолько не любит исключения, что после любой его последовательности действий операции добавления и удаления остаются корректными, то есть никогда не поступает запрос на удаление несуществующего элемента. Ответом на запрос третьего типа является количество вхождений элемента в момент, когда Артёмка обращается к мультимножеству, то есть дальнейшие действия Артёмки не влияют на ответ на данный запрос.
Помогите Артёмке реализовать мультимножество для путешественников во времени.
Первая строка входных данных содержит единственно целое число n (1 ≤ n ≤ 100 000) — число запросов Артёмки.
Следующие n строк содержат по одному запросу. Каждая из них содержит три целых числа ai, ti и xi (1 ≤ ai ≤ 3, 1 ≤ ti, xi ≤ 109) — тип запроса, момент времени, в который отравляется Артёмка, и число, определяющее сам запрос, соответственно. Гарантируется, что все моменты времени различны и что после каждой операции все операции удаления действительно удаляют какой-то элемент из мультимножества.
Для каждого запроса третьего типа выведите ответ на него в тот момент, когда Артёмка его совершает.
6
1 1 5
3 5 5
1 2 5
3 6 5
2 3 5
3 7 5
1
2
1
3
1 1 1
2 2 1
3 3 1
0
Название |
---|