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

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int toate_egale_divImp(int v[], int i, int s) {

if (i == s) {

 if (v[s] == v[1]) return 1;

 return 0;

}

int d1 = toate_egale_divImp(v, i, (i + s) / 2);

int d2 = toate_egale_divImp(v, (i + s) / 2 + 1, s);

return d1 + d2;

}

int main()

{

  int n, v[501],i;

  cin>>n;

  for(i=1;i<=n;i++)cin>>v[i];

  if(toate_egale_divImp(v,1,n)==n)

       cout<<"DA";

   else

       cout<<"NU";

   return 0;

}

Explicație:

m-am inspirat din problemele tale anterioare