Учитывая последовательность неотрицательных целых чисел a0,…,an−1,
, найдите максимальное попарное произведение, то есть самое большое целое число, которое можно получить, умножив два разных элемента из последовательности (или, более формально, max0≤i≠j≤n−1aiaj
). Различные элементы здесь означают ai и aj с i≠j
(это может быть случай ai=aj
).Мой код Не работает каждый раз, когда я запускаю его
Входной формат
Первая строка входного файла содержит целое число п. Следующая строка содержит n неотрицательных целых чисел a0,…,an−1
.
Ограничения
2≤n≤2⋅105; 0≤a0,…,an−1≤105
.
Выходной формат
Вывести единственное число - максимальное попарно продукт.
Этот код работает отлично, но иногда, когда я запускаю его он показывает:
Traceback (most recent call last):
File "C:\Users\gauta\AppData\Local\Programs\Python\Python35\gen.py", line 26, in <module>
print(max(c))
ValueError: max() arg is an empty sequence
Это показывает лишь тогда, когда элементы Всего в списке «а» 2 или 3.
Как я могу улучшить это кода и исправить эту проблему, и будет ли этот код показывать превышение времени или ошибку переполнения целого числа?
import random
import time
b=time.time()
a=list()
c=list()
n=random.randint(2,12)
#appending random numbers in a list 'a'
g=1
while(g<=n):
a.append(random.randint(0,10))
g=g+1
print(a)
print("Total elements in the list= %s"%len(a))
#Appending Done
for i in range(2,n):
for j in range (2,n):
if a[i]*a[j]>0:
if a[i]!=a[j]:
m=a[i]*a[j]
c.append(m)
else:
continue
else:
continue
print(max(c))
time=time.time()-b
print("%s"%(time.time()-b))
'времени = time.time() - b' заменяет имя' time'. Этот код * никогда * не работает. –
Вы переписываете 'time' в строке' time = time.time() - b', просто измените на 't = time.time() - b' и' print (t) ' – AChampion
, благодаря этому решает проблему времени. Любое предложение, как я могу сделать этот код более быстрым и без ошибок переполнения целого числа (если есть) –