Поликарп играет в компьютерную игру (да, опять). В этой игре он сражается с монстрами при помощи заклинаний.
Есть два типа заклинаний: огненный шар силы $$$x$$$ наносит $$$x$$$ урона монстру, а молния силы $$$y$$$ наносит $$$y$$$ урона монстру и удваивает урон следующего заклинания. Каждое заклинание может быть использовано только один раз, но Поликарп может применять их в любом порядке.
Например, предположим, что Поликарп знает три заклинания: огненный шар силы $$$5$$$, молнию силы $$$1$$$ и молнию силы $$$8$$$. Всего есть $$$6$$$ способов выбрать порядок заклинаний:
Изначально Поликарп знает $$$0$$$ заклинаний. Его набор заклинаний меняется $$$n$$$ раз, каждый раз он либо учит новое заклинание, либо забывает старое. После каждого изменения выведите максимально количество урона, которое можно нанести при помощи имеющихся заклинаний.
Первая строка содержит целое число $$$n$$$ ($$$1 \le n \le 2 \cdot 10^5$$$) — количество заклинаний в наборе.
Каждая из следующих $$$n$$$ строк содержит два числа $$$tp$$$ и $$$d$$$ ($$$0 \le tp_i \le 1$$$; $$$-10^9 \le d \le 10^9$$$; $$$d_i \neq 0$$$) — описание изменений. Если $$$tp_i$$$ равно $$$0$$$, Поликарп учит (или забывает) огненный шар, иначе он учит (или забывает) молнию.
Если $$$d_i > 0$$$, то Поликарп учит заклинание силы $$$d_i$$$. Иначе, Поликарп забывает заклинание силы $$$-d_i$$$, и гарантируется, что он знал это заклинание до этого.
Гарантируется, что после каждого изменения все силы заклинаний различны (Поликарп не может знать одновременно два заклинания одинаковой силы).
После каждого изменения выведите максимально количество урона, которое можно нанести при помощи имеющихся заклинаний.
6 1 5 0 10 1 -5 0 5 1 11 0 -10
5 25 10 15 36 21
Название |
---|