3815 - Poligon: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 78: Linia 78:




if __name__ == "__main__":
if __name__ == '__main__':
     main()
     main()
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 19 martie 2023 12:53

Cerinţa

Se dau n numere naturale. Aflati daca acestea pot fi laturile unui poligon cu n laturi.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", Programul va afișa pe ecran mesajul DA, daca numerele date pot fi laturile unui poligon,altfel se afiseaza mesajul NU. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ≤ n ≤ 1000000
  • cele n numere citite vor fi mai mici decât 1.000.000.000


Exemple

Exemplul 1

Intrare
5
1 2 3 4 5
Ieșire
Datele sunt introduse corect.
DA

Exemplul 2

Intrare
4
4 5 10 19
Ieșire
Datele sunt introduse corect.
NU

Exemplul 3

Intrare
3
1000000001 500000000 250000000
Ieșire
Datele nu corespund restricțiilor impuse.



Rezolvare

# 3815 - Poligon
def validate_input(n, laturi):
    if not (1 <= n <= 1000000):
        return False
    if not all(1 <= latura <= 1000000000 for latura in laturi):
        return False
    return True


def main():
    try:
        n = int(input())
        laturi = list(map(int, input().split()))
        if not validate_input(n, laturi):
            raise ValueError
    except ValueError:
        print("Datele nu corespund restricțiilor impuse.")
        return
    except:
        print("Datele nu corespund formatului cerut.")
        return

    print("Datele sunt introduse corect.")
    poate_fi_poligon(n, laturi)


def poate_fi_poligon(n, laturi):
    if not validate_input(n, laturi):
        print("Datele nu corespund restricțiilor impuse.")
        return

    suma = sum(laturi)
    max_latura = max(laturi)
    if (suma - max_latura) > max_latura:  # modified condition
        print("DA")
    else:
        print("NU")


if __name__ == '__main__':
    main()