0287 – Verif Ord

De la Universitas MediaWiki

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 mesajul "Datele de intrare corespund restricțiilor impuse.", iar pe rândul următor numar_vectori 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. În cazul în care datele de intrare nu corespund restricțiilor impuse, se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.".

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