2271 - Prod Max 1
Cerinta
Se dă un șir cu n numere întregi. Determinați cel mai mare număr care poate fi scris ca produs de două elemente ale șirului.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.
Date de iesire
Programul va afisa pe ecran numarul determinat P
Restrictii si precizari
2 ≤ n ≤ 100.000
elementele șirului vor fi cuprinse în intervalul (-1.000.000, 1.000.000)
Exemplu
Intrare
7
-8 3 9 -1 -2 7 -10
Iesire
80
Rezolvare:
def cel_mai_mare_produs(n, sir):
max1 = max2 = float('-inf') # inițializam la -inf (negativ infinit) pentru a asigura că, în timpul parcurgerii șirului,
# orice număr întreg va fi mai mare decât aceste valori iniția
min1 = min2 = float('inf') # inițializam la inf (infinit)
# pentru a garanta că orice număr întreg va fi mai mic decât aceste valori inițiale.
for numar in sir:
if numar > max1:
max2 = max1
max1 = numar
elif numar > max2:
max2 = numar
if numar < min1:
min2 = min1
min1 = numar
elif numar < min2:
min2 = numar
return max(max1 * max2, min1 * min2) # Alegem cel mai mare produs între maximele și minimele
def main():
n = int(input("Introduceți numărul de elemente din șir: "))
sir = list(map(int, input("Introduceți elementele șirului separate prin spațiu: ").split()))
if n >= 2:
rezultat = cel_mai_mare_produs(n, sir)
print("Cel mai mare număr care poate fi scris ca produs de două elemente din șir:", rezultat)
else:
print("Introduceți cel puțin două numere în șir!")
if __name__ == "__main__":
main()