2271 - Prod Max 1

From Bitnami MediaWiki
Revision as of 13:30, 2 January 2024 by Andrada378 (talk | contribs)

Cerința

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:

<syntaxhighlight lang="python"> def gaseste_produsul(n, V):

   max1, max2 = max(V[0], V[1]), min(V[0], V[1])
   for i in range(2, n):
       if V[i] > max1:
           max2, max1 = max1, V[i]
       elif V[i] > max2:
           max2 = V[i]
   min1, min2 = min(V[0], V[1]), max(V[0], V[1])
   for i in range(2, n):
       if V[i] < min1:
           min2, min1 = min1, V[i]
       elif V[i] < min2:
           min2 = V[i]
   P1 = min1 * min2
   P2 = max1 * max2
   return P1 if P1 > P2 else P2


n = int(input()) V = list(map(int, input().split()))

rezultat = gaseste_produsul(n, V) print(rezultat) </syntaxhighlight>