Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- В лаборатории для большого количества частиц производятся замеры электрического заряда каждой из них. Заряд частицы измеряется как целое число (положительное, отрицательное или 0 ). Частиц, заряд которых измерен, может быть очень много, но не может быть меньше трех. Заряды всех частиц различны.
- В серии обязательно присутствует хотя бы одна частица с отрицательным зарядом.
- При обработке результатов в каждой серии эксперимента отбирается основное множество значений зарядов. Это такое непустое подмножество значений зарядов, для которого произведение значений зарядов является минимальным среди всех возможных подмножеств. При нахождении произведения знак числа учитывается. Если есть несколько таких множеств, то берется то, которое содержит наибольшее количество элементов.
- Требуется написать программу, которая будет обрабатывать результаты эксперимента, находя основное множество.
- На вход программе в первой строке подается количество частиц N . В каждой из последующих N строк записано одно целое число, по абсолютной величине не превышающее 109 . Все N чисел различны.
- Программа должна вывести в порядке возрастания номера частиц, заряды которых принадлежат основному множеству данной серии. Нумерация частиц ведется с единицы.
- """
- n = int(input())
- B = []
- prod = 1
- flag = True
- ind_max_otr = 0
- for i in range(n):
- a = int(input())
- if flag and a < 0:
- max_otr = a
- ind_max_otr = i + 1
- flag = False
- B.append(i+1)
- prod *= a
- elif a == 0:
- continue
- elif a > 0:
- B.append(i+1)
- prod *= a
- elif a <= max_otr:
- B.append(i+1)
- prod *= a
- elif a > max_otr and a < 0:
- max_otr = a
- ind_max_otr = i + 1
- B.append(i+1)
- prod *= a
- if prod > 0:
- B.pop(B.index(ind_max_otr))
- print(*B)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement