3397 - Gard 2: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: == Cerința == La un concurs de grădinărit, participanții trebuie să aranjeze panouri de gard de diferite înălțimi astfel încât să obțină un gard frumos. Se consideră că un gard este frumos dacă panourile sunt aranjate în ordine crescătoare a înălțimilor. Sarcina ta este să implementezi un program care sortează panourile de gard în ordine crescătoare a înălțimilor. == Date de intrare == Programul citește de la tastatură: Un număr întreg n repre...)
 
(Ștergerea conținutului paginii)
Etichetă: Golire
 
Linia 1: Linia 1:
== Cerința ==
La un concurs de grădinărit, participanții trebuie să aranjeze panouri de gard de diferite înălțimi astfel încât să obțină un gard frumos. Se consideră că un gard este frumos dacă panourile sunt aranjate în ordine crescătoare a înălțimilor. Sarcina ta este să implementezi un program care sortează panourile de gard în ordine crescătoare a înălțimilor.
== Date de intrare ==
Programul citește de la tastatură:


Un număr întreg n reprezentând numărul de panouri.
O listă de n numere întregi reprezentând înălțimile panourilor.
== Date de ieșire ==
Pe ecran se va afișa lista de înălțimi a panourilor sortată în ordine crescătoare.
== Restricții și precizări ==
*1 ⩽ '''n''' ⩽ 1000
* Fiecare înălțime este un număr întreg pozitiv
== Exemplu 1 ==
;Intrare
5<br>
3 1 4 2 5
;Iesire
1 2 3 4 5
== Rezolvare ==
<syntaxhighlight lang="python" line>
def citeste_date():
    try:
        n = int(input("Introduceți numărul de panouri (n): "))
        inaltimi = list(map(int, input("Introduceți înălțimile panourilor, separate prin spațiu: ").split()))
        return n, inaltimi
    except ValueError:
        return None, None
def valideaza_date(n, inaltimi):
    if not (1 <= n <= 1000):
        return False
    if len(inaltimi) != n:
        return False
    if not all(isinstance(inaltime, int) and inaltime > 0 for inaltime in inaltimi):
        return False
    return True
def sorteaza_inaltimi(n, inaltimi):
    inaltimi.sort()
    return inaltimi
def main():
    n, inaltimi = citeste_date()
   
    if n is None or inaltimi is None or not valideaza_date(n, inaltimi):
        print("Datele de intrare nu corespund restricțiilor impuse.")
        return
   
    print("Datele de intrare corespund restricțiilor impuse.")
    inaltimi_sortate = sorteaza_inaltimi(n, inaltimi)
    print(" ".join(map(str, inaltimi_sortate)))
if __name__ == "__main__":
    main()
</syntaxhighlight>

Versiunea curentă din 3 iunie 2024 02:50