fbpx

Problema #1151 – VerifEgaleDivImp – Rezolvari PBInfo

de Mihai-Alexandru

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

Exemplu

Date de intrare

7
6 6 6 6 4 6 6 

Date de ieșire

NU
#include <bits/stdc++.h>
using namespace std;

bool toate_egale(int a[], int st, int dr){
    if(st == dr)
        return a[st] == a[1];
    else{
        int mij = (st + dr) / 2;
        return toate_egale(a, st, mij) && toate_egale(a, mij + 1, dr);
    }
}

int main()
{
    int n, a[501];
    cin >> n;
    for(int i = 1; i <= n; ++i)
        cin >> a[i];

    if(toate_egale(a, 1, n))
        cout << "DA";
    else
        cout << "NU";

    return 0;
}
Comentarii

S-ar putea sa iti placa