0512 - Sort Max
De la Universitas MediaWiki
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
#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.")