1152 - Verificare Ordonat Div Imp

From Bitnami MediaWiki
Revision as of 16:54, 15 December 2023 by Andrada378 (talk | contribs) (Pagină nouă: Cerinta 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 Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele vectorului. Date de iesire Programul afișează pe ecran mesajul DA, dacă vectorul are elementele ordonate crescător, sau NU, în caz contrar. Restrictii si precizari 1 ≤ n ≤ 500 fiecare element al vectorul...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinta

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

Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele vectorului.

Date de iesire

Programul afișează pe ecran mesajul DA, dacă vectorul are elementele ordonate crescător, sau NU, în caz contrar.

Restrictii si precizari

1 ≤ n ≤ 500

fiecare element al vectorului va avea cel mult patru cifre

Exemplu

Date de intrare

7

4 5 7 9 9 10 12

Date de iesire

DA

Rezolvare

def are_elemente_ordonate_crescator(arr):

    if len(arr) <= 1:

        return True

    mijloc = len(arr) // 2

    stanga = arr[:mijloc]

    dreapta = arr[mijloc:]

    return are_elemente_ordonate_crescator(stanga) and are_elemente_ordonate_crescator(dreapta) and stanga[-1] <= dreapta[0]

def main():

    n = int(input("Introduceți lungimea vectorului: "))

    vector = list(map(int, input("Introduceți elementele vectorului separate prin spațiu: ").split()))

    rezultat = are_elemente_ordonate_crescator(vector)

    if rezultat:

        print("DA")

    else:

        print("NU")

if __name__ == "__main__":

    main()