1152 - Verificare Ordonat Div Imp: Difference between revisions

From Bitnami MediaWiki
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>