0512 - Sort Max
Cerința
Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare.
Date de intrare
Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieșire
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.
Restricții și precizări
- 1 ≤ n ≤ 1000;
- cele n numere citite vor fi mai mici decât 1.000.000.000;
Exemplul 1
- Intrare
- 7
- 13 1 10 15 3 7 11
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1 10 13 15 11 7 3
Exemplul 2
- Intrare
- 0
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line="1">
- 0512 - Sort Max
- definim o funcție pentru sortare
def sort_vector(n, a):
# găsim valoarea maximă și indexul acesteia în vector max_val = max(a) max_index = a.index(max_val) # sortăm valorile de dinainte și de după valoarea maximă a[:max_index] = sorted(a[:max_index]) a[max_index:] = sorted(a[max_index:], reverse=True) # returnăm elementele vectorului, sortate return a
if __name__ == "__main__":
# citim valorile de intrare n = int(input()) a = list(map(int, input().split()))
# verificăm restricțiile if n >= 2 and n <= 1000 and max(a) < 1000000000: # dacă valorile de intrare respectă restricțiile impuse, sortăm vectorul și îl afișăm print("Datele de intrare corespund restricțiilor impuse.") a = sort_vector(n, a) print(*a) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>