0287 – Verif Ord
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
<syntaxhighlight lang="python" line>
- 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.")
</syntaxhighlight>