3815 - Poligon
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
<syntaxhighlight lang="python" line="1">
- 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()
</syntaxhighlight>