0287 – Verif Ord

De la Universitas MediaWiki
Versiunea din 3 ianuarie 2023 19:06, autor: Bogdan.Pop (discuție | contribuții) (Pagină nouă: == Cerinţa == Se dau '''numar_vectori''' şiruri cu elemente numere întregi. Să se verifice despre fiecare dacă este ordonat crescător. == Date de intrare == Programul citește de la tastatură numărul '''numar_vectori'''; iar apoi '''numar_vectori''' şiruri – pentru fiecare, se citeşte mai întâi numărul de valori '''numar_elemente''', apoi valorile din şir. == Date de ieșire == Programul afișează pe ecran n valori 0 sau 1, separate prin spaţii. A k-a valoa...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerinţa

Se dau numar_vectori şiruri cu elemente numere întregi. Să se verifice despre fiecare dacă este ordonat crescător.

Date de intrare

Programul citește de la tastatură numărul numar_vectori; iar apoi numar_vectori şiruri – pentru fiecare, se citeşte mai întâi numărul de valori numar_elemente, apoi valorile din şir.

Date de ieșire

Programul afișează pe ecran n valori 0 sau 1, separate prin spaţii. A k-a valoare este 1, dacă al k-lea şir este ordonat crescător, respectiv 0 dacă şirul nu este ordonat crescător.

Restricţii şi precizări

  • numar_elemente, numar_vectori ∈ ℕ
  • 1 ⩽ numar_vectori ⩽ 10
  • 1 ⩽ numar_elemente ⩽ 500
  • -10000 < element vector < 10000
  • element vector ∈ ℤ

Exemplu

Intrare
3
9
5
-5
8
-2
-7
0
-9
10
7
-6
-5
-4
0
2
5
8
5
2
7
8
10
10
Ieșire
Datele introduse corespund restricțiilor impuse.
0 1 1


Intrare
3
2
15
10
0
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Intrare
2
4
-25
abc
10
15
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare

Rezolvare ver. 1

# 0287 - Verif Ord

def validare_date_numar_vectori(numar):
    if numar.isdigit() and 1 <= int(numar) <= 10:
        return True
    else:
        return False
    

def validare_date_numar_elemente(numar):
    if numar.isdigit() and 1 <= int(numar) <= 500:
        return True
    else:
        return False


def validare_date_vector(vector):
    for numar in vector:
        if numar.startswith('-') and numar[1:].isdigit() and len(numar) < 6:
            continue
        elif numar.isdigit() and len(numar) < 5:
            continue
        else:   
            return False
    return True
    

def verif_ord(numar_vectori, vector):
    flag = []
    
    for indice_vector in range(numar_vectori):
        if vector[indice_vector] == sorted(vector[indice_vector]):
            flag.append("1")
        else:
            flag.append("0")
    
    print(*flag, sep=" ")
    

if __name__ == "__main__":
    numar_vectori = input()
    vector = []
    
    if validare_date_numar_vectori(numar_vectori):
        numar_vectori = int(numar_vectori)
        for numar in range(numar_vectori):
            numar_elemente = input()
            if validare_date_numar_elemente(numar_elemente):
                numar_elemente = int(numar_elemente)
                vector_aux = []
                for indice in range(numar_elemente):
                    vector_aux.append(input())
                if validare_date_vector(vector_aux):
                    vector_aux = list(map(int, vector_aux))
                    vector.append(vector_aux)
                else:
                    print("Datele de intrare nu corespund restricțiilor impuse.")
                    break
            else:
                print("Datele de intrare nu corespund restricțiilor impuse.")
                break
        else:
            print("Datele de intrare corespund restricțiilor impuse.")
            verif_ord(numar_vectori, vector)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")