Олимпиадный тренинг

Задача . G. Дистинктификация


Допустим, у вас есть последовательность \(S\) из \(k\) пар целых чисел \((a_1, b_1), (a_2, b_2), \dots, (a_k, b_k)\).

Вы можете совершать с ней следующие операции:

  1. Выбрать некоторую позицию \(i\) и увеличить \(a_i\) на \(1\). Эту операцию можно делать только в том случае, если существует хотя бы одна позиция \(j\), такая, что \(i \ne j\) и \(a_i = a_j\). Стоимость такой операции равна \(b_i\);
  2. Выбрать некоторую позицию \(i\) и уменьшить \(a_i\) на \(1\). Эту операцию можно делать только в том случае, если существует хотя бы одна позиция \(j\), такая, что \(a_i = a_j + 1\). Стоимость такой операции равна \(-b_i\).

Каждая операция может быть использована любое количество раз (возможно, ноль).

Обозначим за \(f(S)\) такое минимально возможное \(x\), что существует последовательность операций с суммарной стоимостью \(x\), после которой все \(a_i\) в \(S\) станут попарно различными.

А теперь, собственно, сама задача.

Вам дана последовательность \(P\), состоящая из \(n\) пар целых чисел \((a_1, b_1), (a_2, b_2), \dots, (a_n, b_n)\). Все значения \(b_i\) попарно различны. Пусть \(P_i\) — это последовательность, состоящая из первых \(i\) пар из \(P\). Ваша задача — подсчитать \(f(P_1), f(P_2), \dots, f(P_n)\).

Входные данные

В первой строке записано целое число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) — количество пар в последовательности \(P\).

Следующие \(n\) строк задают элементы \(P\): \(i\)-я из следующих \(n\) строк содержит два целых числа \(a_i\) и \(b_i\) (\(1 \le a_i \le 2 \cdot 10^5\), \(1 \le b_i \le n\)). Гарантируется, что все значения \(b_i\) различны.

Выходные данные

Выведите \(n\) целых чисел, \(i\)-е из которых должно быть равно \(f(P_i)\).


Примеры
Входные данныеВыходные данные
1 5
1 1
3 3
5 5
4 2
2 4
0
0
0
-5
-16
2 4
2 4
2 3
2 2
1 1
0
3
7
1

time 6000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя