СРОЧНО ПИТОН ЗАДАЧА ДАРЮ БАЛЛЫ ЗА ПРАВИЛЬНОЕ РЕШЕНИЕ
Вам дан массив целых чисел 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