EduBrick

K. Река

1000 мс · 256 МБ · всё или ничего

Река поделена между nn предприятиями; ii-е владеет отрезком длины aia_i. Происходят события двух видов: предприятие банкротится или разделяется надвое.

Деление отрезка всегда одно и то же: чётная длина делится пополам, нечётная - на части, различающиеся на единицу, причём ближняя к истоку часть меньше.

  • Разделение: отрезок делится, предприятие исчезает, появляются два новых.
  • Банкротство: отрезок переходит соседям. Если сосед один, он получает всё. Если соседей двое, отрезок делится, и каждый присоединяет ближайшую к себе часть.

После каждого события (и в начале) выведите сумму квадратов длин.

Формат ввода

В первой строке - число nn (2≤n≤1052 \le n \le 10^5).

Во второй - nn длин, целых от 1 до 1000.

В третьей - число событий kk (1≤k≤1051 \le k \le 10^5).

В следующих kk строках - пары eie_i и viv_i: ei=1e_i = 1 означает банкротство viv_i-го по порядку предприятия, ei=2e_i = 2 - его разделение.

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

Формат вывода

Выведите k+1k + 1 число - сумму квадратов длин в начале и после каждого события.

Примеры

ввод
4
3 5 5 4
5
1 1
2 1
1 3
2 2
1 3
вывод
75
105
73
101
83
113
ввод
2
4 4
1
2 1
вывод
32
24
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.