1151 - Verif Egale Div Imp
De la Universitas MediaWiki
Cerinţa
Se dă un vector cu n
elemente numere naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele vectorului sunt egale.
Date de intrare
Programul citește de la tastatură numărul n
, apoi n
numere naturale, reprezentând elementele vectorului.
Date de ieşire
Programul afișează pe ecran mesajul DA
, dacă vectorul are toate elementele egale, sau NU
, în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 500
- fiecare element al vectorului va avea cel mult patru cifre
Exemplul 1
Date de intrare
7 6 6 6 6 4 6 6
Date de ieșire
NU
Exemplul 2
Date de intrare
501
Date de ieșire
Numărul de elemente trebuie să fie între 1 și 500. Programul se încheie.
Rezolvare
def verifica_restrictii_n(n):
if not 1 <= n <= 500:
print("Numărul de elemente trebuie să fie între 1 și 500. Programul se încheie.")
return False
return True
def verifica_restrictii_element(element):
if not 0 <= element < 10000:
print("Elementele vectorului trebuie să aibă cel mult patru cifre. Programul se încheie.")
return False
return True
def are_toate_elementele_egale(arr, left, right):
if left == right:
return True # Un singur element este întotdeauna "egal" cu el însuși
mid = (left + right) // 2
are_toate_left = are_toate_elementele_egale(arr, left, mid)
are_toate_right = are_toate_elementele_egale(arr, mid + 1, right)
return are_toate_left and are_toate_right and (arr[left] == arr[right])
def main():
# Citim numărul de elemente
n = int(input("Introduceți numărul de elemente (1 ≤ n ≤ 500): "))
# Verificăm restricția pentru n folosind funcția dedicată
if not verifica_restrictii_n(n):
return
# Citim elementele vectorului
arr = []
for i in range(n):
element = int(input(f"Introduceți elementul {i + 1} (elemente cu cel mult 4 cifre): "))
# Verificăm restricția pentru elementele vectorului folosind funcția dedicată
if not verifica_restrictii_element(element):
return
arr.append(element)
# Verificăm și afișăm rezultatul
rezultat = are_toate_elementele_egale(arr, 0, n - 1)
if rezultat:
print("DA")
else:
print("NU")
if __name__ == "__main__":
main()