0512 - Sort Max

From Bitnami MediaWiki
Revision as of 08:39, 29 April 2023 by Adina Timiș (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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">

  1. 0512 - Sort Max
  2. 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>