1320 – Ordonat – Neordonat
Cerinţa[edit | edit source]
Orice şir se încadrează în următoarele categorii: șir constant, șir strict crescător, șir crescător, șir strict descrescător, șir descrescător sau șir neordonat.
Se citește un șir vector cu numar_elemente elemente naturale. Să se verifice în ce categorie se încadrează.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul numar_elemente, iar apoi cele numar_elemente elemente ale şirului vector.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de unul dintre mesajele sir constant, sir strict crescator, sir crescator, sir strict descrescator, sir descrescator sau sir neordonat. Se va tipări categoria cea mai strictă în care se încadrează şirul. În cazul în care datele de intrare nu corespund restricțiilor impuse, programul va afișa "Datele de intrare nu corespund restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- numar_elemente ∈ ℕ
- 1 ⩽ numar_elemente ⩽ 1000
- element vector ∈ ℕ
- 0 ⩽ element vector ⩽ 1000000000
Exemplu[edit | edit source]
- Intrare
- 5
- 1
- 2
- 3
- 4
- 5
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- sir strict crescator
- Intrare
- 5
- 1
- 1
- 1
- 1
- 1
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- sir constant
- Intrare
- 5
- 5
- 3
- 3
- 2
- 1
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- sir descrescator
- Intrare
- 5
- 1
- 1
- 1
- 1
- 1
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- sir constant
- Intrare
- 3
- 5
- abc
- 63.5
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
- Intrare
- 2
- -25
- abc
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
- 1320 - Ordonat - Neordonat
def validare_date_numar_elemente(numar):
if numar.isdigit() and 1 <= int(numar) <= 1_000: return True else: return False
def validare_date_vector(vector):
for numar in vector: if numar.isdigit() and len(numar) < 10: continue else: return False return True
def ordonat_neordonat(numar_elemente, vector):
flag_crescator = int(0) flag_descrescator = int(0) flag_constant = int(0) flag_neordonat = int(0) for indice1 in range(numar_elemente-1): for indice2 in range(indice1 + 1, numar_elemente): if vector[indice1] < vector[indice2]: flag_crescator += 1 if vector[indice1] > vector[indice2]: flag_descrescator += 1 if vector[indice1] == vector[indice2]: flag_constant += 1 if flag_crescator > 0 and flag_descrescator > 0: flag_neordonat += 1 if flag_neordonat > 0: print("sir neordonat") elif flag_crescator == 0 and flag_descrescator == 0 and flag_constant > 0: print("sir constant") elif flag_crescator == 0 and flag_descrescator > 0 and flag_constant > 0: print("sir descrescator") elif flag_crescator > 0 and flag_descrescator == 0 and flag_constant > 0: print("sir crescator") elif flag_crescator == 0 and flag_descrescator > 0 and flag_constant == 0: print("sir strict descrescator") elif flag_crescator > 0 and flag_descrescator == 0 and flag_constant == 0: print("sir strict crescator")
if __name__ == "__main__":
numar_elemente = input() vector = [] if validare_date_numar_elemente(numar_elemente): numar_elemente = int(numar_elemente) for indice in range(numar_elemente): vector.append(input()) if validare_date_vector(vector): vector = list(map(int, vector)) print("Datele de intrare corespund restricțiilor impuse.") ordonat_neordonat(numar_elemente, vector) else: print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>