0512 - Sort Max
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.
Restricții și precizări[edit | edit source]
- 1 ≤ n ≤ 1000;
- cele n numere citite vor fi mai mici decât 1.000.000.000;
Exemplul 1[edit | edit source]
- 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[edit | edit source]
- Intrare
- 0
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<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>