1152 - Verificare Ordonat Div Imp: Difference between revisions
Andrada378 (talk | contribs) No edit summary |
Andrada378 (talk | contribs) |
||
Line 26: | Line 26: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
def validare_date(n, a): | |||
if not 1 <= n <= 500: | |||
print("Valoare invalidă pentru n.") | |||
exit() | |||
if any(not 0 <= element <= 9999 for element in a[1:]): | |||
print("Valoare invalidă în vector. Fiecare element ar trebui să aibă cel mult patru cifre.") | |||
exit() | |||
def ordonat(a, st, dr): | def ordonat(a, st, dr): | ||
if st == dr: | if st == dr: | ||
Line 45: | Line 54: | ||
else: | else: | ||
print("NU") | print("NU") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 22:03, 3 January 2024
Cerința[edit | edit source]
Se dă un vector cu n elemente numere naturale. Folosind metoda Divide et Impera să se verifice dacă are elementele ordonate crescător.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele vectorului.
Date de iesire[edit | edit source]
Programul afișează pe ecran mesajul DA, dacă vectorul are elementele ordonate crescător, sau NU, în caz contrar.
Restricții si precizări[edit | edit source]
- 1 ≤ n ≤ 500
- fiecare element al vectorului va avea cel mult patru cifre
Exemplu[edit | edit source]
Date de intrare
7
4 5 7 9 9 10 12
Date de ieșire
DA
Rezolvare[edit | edit source]
<syntaxhighlight lang="python"> def validare_date(n, a):
if not 1 <= n <= 500: print("Valoare invalidă pentru n.") exit()
if any(not 0 <= element <= 9999 for element in a[1:]): print("Valoare invalidă în vector. Fiecare element ar trebui să aibă cel mult patru cifre.") exit()
def ordonat(a, st, dr):
if st == dr: return 1 else: mij = (st + dr) // 2 a1 = ordonat(a, st, mij) a2 = ordonat(a, mij + 1, dr) if a1 == a2 and a[mij] <= a[mij + 1]: return 1 else: return 0
n = int(input()) a = [0] + list(map(int, input().split()))
if ordonat(a, 1, n):
print("DA")
else:
print("NU")
</syntaxhighlight>