2271 - Prod Max 1: Difference between revisions
Andrada378 (talk | contribs) Pagină nouă: 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 Ies... |
Andrada378 (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
== 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. | 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 | == Date de intrare == | ||
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului. | Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului. | ||
Date de iesire | == Date de iesire == | ||
Programul va afisa pe ecran numarul determinat P | Programul va afisa pe ecran numarul determinat P | ||
Restrictii si precizari | == Restrictii si precizari == | ||
elementele șirului vor fi cuprinse în intervalul (-1.000.000, 1.000.000) | * 2 ≤ n ≤ 100.000 | ||
* elementele șirului vor fi cuprinse în intervalul (-1.000.000, 1.000.000) | |||
Exemplu | === Exemplu: === | ||
'''Intrare''' | |||
Intrare | |||
7 | 7 | ||
Line 25: | Line 20: | ||
-8 3 9 -1 -2 7 -10 | -8 3 9 -1 -2 7 -10 | ||
Iesire | '''Iesire''' | ||
80 | 80 | ||
Rezolvare: | == Rezolvare: == | ||
<syntaxhighlight lang="python"> | |||
def | def validate_input(n, V): | ||
if not (2 <= n <= 100000): | |||
raise ValueError("n trebuie să fie între 2 și 100.000 inclusiv.") | |||
for val in V: | |||
if not (-1000000 <= val <= 1000000): | |||
raise ValueError("Elementele listei trebuie să fie cuprinse în intervalul (-1.000.000, 1.000.000).") | |||
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> |
Latest revision as of 21:12, 3 January 2024
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.
Date de iesire[edit | edit source]
Programul va afisa pe ecran numarul determinat P
Restrictii si precizari[edit | edit source]
- 2 ≤ n ≤ 100.000
- elementele șirului vor fi cuprinse în intervalul (-1.000.000, 1.000.000)
Exemplu:[edit | edit source]
Intrare
7
-8 3 9 -1 -2 7 -10
Iesire
80
Rezolvare:[edit | edit source]
<syntaxhighlight lang="python"> def validate_input(n, V):
if not (2 <= n <= 100000): raise ValueError("n trebuie să fie între 2 și 100.000 inclusiv.")
for val in V: if not (-1000000 <= val <= 1000000): raise ValueError("Elementele listei trebuie să fie cuprinse în intervalul (-1.000.000, 1.000.000).")
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>