| Codeforces Round 1070 (Div. 2) |
|---|
| Закончено |
У вас есть $$$n$$$ элементов. У каждого из этих элементов есть натуральное значение $$$a_i$$$, а также натуральная стоимость удаления $$$c_i$$$. Вам необходимо удалить все элементы, кроме одного, заплатив минимально возможную стоимость. Для этого вы выполняете следующую операцию $$$n - 1$$$ раз:
За одну операцию вы выбираете два соседних элемента и удаляете наименьший из них по значению. За данную операцию вы платите стоимость удаления наименьшего по стоимости элемента среди этих двух. Если же эти два элемента равны по значению, вы можете удалить любой из них, заплатив стоимость удаления минимального из них по стоимости удаления. После удаления элементы, стоявшие правее удаляемого, смещаются влево на одну позицию, таким образом, пропусков не остается.
Также у вас есть $$$n$$$ обнулений стоимостей удаления массива. После $$$i$$$-го обнуления стоимость удаления элемента с индексом $$$p_i$$$ становится равной $$$0$$$. Гарантируется, что все $$$p_i$$$ различны. Вам необходимо для изначальных элементов решить данную задачу, а также после каждого из обнулений.
Обратите внимание: после $$$i$$$-го обнуления стоимость удаления $$$p_i$$$ элемента остаётся равной $$$0$$$ во всех последующих решаемых задачах ($$$i + 1, i + 2, \dots, n$$$).
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора содержит одно натуральное число $$$n$$$ ($$$2 \le n \le 2 \cdot 10^5$$$) — количество имеющихся у вас элементов.
Вторая строка каждого набора входных данных содержит $$$n$$$ натуральных чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — значения элементов.
Третья строка каждого набора входных данных содержит $$$n$$$ натуральных чисел $$$c_1, c_2, \ldots, c_n$$$ ($$$1 \le c_i \le 10^9$$$) — стоимости удаления элементов.
Четвёртая строка каждого набора входных данных содержит $$$n$$$ натуральных чисел $$$p_1, p_2, \ldots, p_n$$$ ($$$1 \le p_i \le n$$$) — индексы элементов, стоимости удаления для которых обнуляются, в соответствующем порядке. Гарантируется, что все $$$p_i$$$ различны.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите $$$n + 1$$$ чисел — минимальную стоимость удаления всех элементов, кроме одного, до всех обнулений и после каждого из них.
2105 5 8 10 4 3 4 10 5 510 3 9 6 9 8 7 8 10 31 10 2 9 5 6 7 4 3 841000000000 1000000000 1000000000 10000000001000000000 1000000000 1000000000 10000000001 2 4 3
42 36 30 30 30 12 12 12 0 0 03000000000 0 0 0 0
Объяснение первого набора тестовых данных примера:
Минимальная стоимость удаления всех элементов до обнулений — 42.
Для получения этой стоимости можно, например:
Суммарная стоимость всех удаленных элементов равна $$$3+3+6+6+6+6+6+3+3=42$$$. Можно доказать, что добиться меньшей стоимости удаления всех элементов, кроме одного, невозможно.
После первого запроса обнуления первый элемент становится равен ($$$5, 0$$$). Теперь первые два элемента можно удалить не за $$$3+3$$$, а за $$$0+0$$$. Суммарная стоимость удаления всех элементов, кроме одного, теперь равна $$$36$$$.
| Название |
|---|


