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

Задача . F. Tower Defense


Монокарп играет в игру в жанре tower defense. Уровень в этой игре может быть представлен как ось OX, на которой в каждой целочисленной точке от \(1\) до \(n\) стоит башня.

У башни в \(i\)-й точке вместимость маны равна \(c_i\), а скорость восстановления маны равна \(r_i\). В самом начале, до секунды \(0\), у каждой башни полная мана. Если в конце какой-то секунды у \(i\)-й башни \(x\) маны, то к началу следующей секунды становится \(\mathit{min}(x + r_i, c_i)\) маны.

На уровне появляются \(q\) монстров. \(j\)-й монстр появляется в точке \(1\) в начале \(t_j\)-й секунды и имеет \(h_j\) здоровья. Каждый монстр двигается со скоростью \(1\) точка в секунду в направлении увеличения координаты.

Когда монстр проходит мимо башни, башня наносит ему \(\mathit{min}(H, M)\) урона, где \(H\) — это текущий запас здоровья монстра, а \(M\) — текущий запас маны башни. Это количество вычитается из здоровья монстра и из маны башни.

К сожалению, некоторые монстры могут пройти мимо всех \(n\) башен и остаться живыми. Монокарп хочет знать, какой суммарный запас здоровья будет у монстров после того, как они пройдут мимо всех башен.

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

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

В \(i\)-й из следующих \(n\) строк записаны два целых числа \(c_i\) и \(r_i\) (\(1 \le r_i \le c_i \le 10^9\)) — вместимость мана и скорость восстановления маны у \(i\)-й башни.

В следующей строке записано одно целое число \(q\) (\(1 \le q \le 2 \cdot 10^5\)) — количество монстров.

В \(j\)-й из следующих \(q\) строк записаны два целых числа \(t_j\) и \(h_j\) (\(0 \le t_j \le 2 \cdot 10^5\); \(1 \le h_j \le 10^{12}\)) — время, когда появляется \(j\)-й монстр, и его здоровье.

Монстры перечислены в порядке увеличения времени появления, поэтому \(t_j < t_{j+1}\) для всех \(1 \le j \le q-1\).

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

Выведите одно целое число — суммарный запас здоровья у монстров, который будет после того, как они пройдут мимо всех башен.


Примеры
Входные данныеВыходные данные
1 3
5 1
7 4
4 2
4
0 14
1 10
3 16
10 16
4
2 5
2 1
4 1
5 4
7 5
8 3
9
1 21
2 18
3 14
4 24
5 8
6 25
7 19
8 24
9 24
40

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

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