Способ печати заключается в том, что меньшее число должно печататься первым и следующим. За исключением двух, все тесты пройдены. Идея кода заключается в том, что я сохраняю числа и их частоту в словаре, а затем просматриваю словарь и проверяю - (число), и, если присутствует, я печатаю число, как в частоте, и делаю их частоту как 0
def pairSum0(l):
if len(l)==0:
return
map = {}
for num in l: #to store the freq of each number
if num in map:
map[num] += 1
else:
map[num] = 1
for i in map:
if -i in map and map[i]!=0 and map[-i]!=0:
if map[i]==map[-i]:#k is getting the number of time the number is present
k=map[i]
if map[i]<map[-i]:
k=map[-i]
else:
k=map[i]
for j in range(k):
if -i<i:
print(-i,i)
else:
print(i,-i)
map[i]=0
map[-i]=0
n=int(input())
l=list(int(i) for i in input().strip().split(' '))
pairSum0(l)
Где код, который дает неверные результаты. Может ли кто-нибудь помочь мне отладить его? один неудачный тестовый пример: 6 0 0 0 0 -1 1 мой результат 0 0 0 0 0 0 0 0 0 -1 1 желаемый результат: 0 0 0 0 0 0 0 0 0 0 0 0 -1 1