2271 - Prod Max 1

From Bitnami MediaWiki
Revision as of 14:10, 15 December 2023 by 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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()