0287 – Verif Ord

From Bitnami MediaWiki

Cerinţa[edit | edit source]

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

Date de intrare[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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

Exemplu[edit | edit source]

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[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

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

</syntaxhighlight>