3746 - LeMans
Cerința
În cadrul unei curse de mașini LeMans, fiecare mașină trebuie să finalizeze un anumit număr de ture pentru a completa cursa. Organizatorii doresc să afle ordinea în care mașinile au terminat cursa, în funcție de numărul de ture completate. Sarcina ta este să implementezi un program care sortează mașinile în funcție de numărul de ture completate în ordine descrescătoare.
Date de intrare
Programul citește de la tastatură:
Un număr întreg n reprezentând numărul de mașini. O listă de n numere întregi reprezentând numărul de ture completate de fiecare mașină.
Date de ieșire
Pe ecran se va afișa lista de numere de ture completate de fiecare mașină, sortată în ordine descrescătoare.
Restricții și precizări
- 1 ⩽ n ⩽ 1000
- Numărul de ture pentru fiecare mașină este un număr întreg pozitiv
Exemplu 1
- Intrare
5
100 150 120 130 110
- Iesire
150 130 120 110 100
Rezolvare
<syntaxhighlight lang="python" line> def citeste_date():
try: n = int(input("Introduceți numărul de mașini (n): ")) ture = list(map(int, input("Introduceți numărul de ture completate de fiecare mașină, separate prin spațiu: ").split())) return n, ture except ValueError: return None, None
def valideaza_date(n, ture):
if not (1 <= n <= 1000): return False if len(ture) != n: return False if not all(isinstance(tura, int) and tura > 0 for tura in ture): return False return True
def sorteaza_ture_descrescator(n, ture):
ture.sort(reverse=True) return ture
def main():
n, ture = citeste_date() if n is None or ture is None or not valideaza_date(n, ture): print("Datele de intrare nu corespund restricțiilor impuse.") return print("Datele de intrare corespund restricțiilor impuse.") ture_sortate = sorteaza_ture_descrescator(n, ture) print(" ".join(map(str, ture_sortate)))
if __name__ == "__main__":
main()
</syntaxhighlight>