1151 - Verif Egale Div Imp
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n
, apoi n
numere naturale, reprezentând elementele vectorului.
Date de ieşire[edit | edit source]
Programul afișează pe ecran mesajul DA
, dacă vectorul are toate elementele egale, sau NU
, în caz contrar.
Restricţii şi precizări[edit | edit source]
1 ≤ n ≤ 500
- fiecare element al vectorului va avea cel mult patru cifre
Exemplul 1[edit | edit source]
Date de intrare
7 6 6 6 6 4 6 6
Date de ieșire
NU
Exemplul 2[edit | edit source]
Date de intrare
501
Date de ieșire
Numărul de elemente trebuie să fie între 1 și 500. Programul se încheie.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> 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()
</syntaxhighlight>