Top.Mail.Ru
Ответы

СРОЧНО ПИТОН ЗАДАЧА ДАРЮ БАЛЛЫ ЗА ПРАВИЛЬНОЕ РЕШЕНИЕ

Вам дан массив целых чисел a1,a2,…,an

. Вы можете выполнить следующую операцию любое количество раз (возможно, ноль):

Выбрать любой элемент ai

из массива и заменить его значение на любое целое число от 0 до ai (включительно). Более формально, если ai<0, заменить ai на любое целое число из [ai,0], иначе заменить ai на любое целое число из [0,ai]

.

Пусть r — минимально возможное произведение всех ai

после выполнения операции любое число раз.

Найдите минимальное количество операций, необходимое для того, чтобы произведение стало равно r

. Также выведите одну такую кратчайшую последовательность операций. Если существует несколько ответов, можете вывести любой из них. Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число t (1≤t≤500

) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число n (1≤n≤100

) — длину массива.

Вторая строка каждого набора входных данных содержит n целых чисел a1,a2,…,an (−109≤ai≤109

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

Для каждого набора входных данных:

Первая строка должна содержать минимальное количество операций k

(0≤k≤n ). j -я из следующих k строк должна содержать два целых числа i и x, которые описывают j-ю операцию. Эта операция заключается в замене ai на x

.

Пример Входные данные Скопировать

4 1 155 4 2 8 -1 3 4 -1 0 -2 -5 4 -15 -75 -25 -30

Выходные данные Скопировать

1 1 0 0 0 1 3 0

Примечание

В первом примере мы можем заменить значение первого элемента на 0 , и произведение станет 0

, что является минимально возможным произведением.

Во втором примере изначально произведение целых чисел равно 2⋅8⋅(−1)⋅3=−48 , что является минимально возможным произведением, поэтому в этом случае ничего делать не нужно.

По дате
По рейтингу
Аватар пользователя
Мыслитель

у чат жипити спроси

Аватар пользователя
Профи

попробуй 3