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

Задача . Устранение массива - 2


Задача

Темы:

Дан массив \(a\) длины \(n\). Каждый элемент массива — \(-1\), \(0\) или \(1\). Известно, что \(-1\) находятся только строго в правой половине массива, то есть на индесах от \(\left\lfloor\frac{n + 1}{2}\right\rfloor + 1\) до \(n\). Все оставшиеся элементы могут быть равны только \(0\) или \(1\).

С массивом разрешается выполнять следующие два вида действий:

  1. Заплатить две монеты и удалить из массива любое число \(a_i\). После такого действия массив \([a_1, a_2, \ldots, a_k]\) превращается в \([a_1, \ldots, a_{i-1}, a_{i+1}, \ldots, a_k]\).

  2. Заплатить одну монету и заменить два стоящих рядом числа \(a_i\) и \(a_{i+1}\) на \(a_{i+1} + 1\) копию числа \(a_i\). То есть, возможны следующие преобразования:

Иными словами, \(-1\) можно удалить вместе с предыдущим числом, \(0\) можно удалить сам по себе, если он стоит не в начале массива, а \(1\) можно заменить на предшествующее ей число.

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

Формат входных данных
В первой строке дано единственное целое число \(T\) — количество наборов входных данных (\(1 \le T \le 100\)). Далее следуют \(T\) наборов входных данных.

Каждый набор входных данных начинается со строки, содержащей единственное число \(n\) — изначальную длину массива. В следующей строке через пробел перечислены целые числа \(a_1\), …, \(a_n\) — элементы массива (\(-1 \le a_i \le 1\)).

Гарантируется, что сумма длин массивов по всем наборам входных данных не превосходит \(10^6\).

Формат выходных данных
Выведите \(T\) целых чисел, каждое в своей строке — ответы на задачу для каждого набора входных данных в том порядке, в котором оны даны во вводе.

 

Примеры
Входные данныеВыходные данные
1 4
7
1 1 0 0 -1 1 1
5
0 0 0 0 0
11
0 1 0 1 1 0 -1 1 1 0 -1
10
0 1 1 1 1 -1 1 0 1 0
6
6
9
11

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

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