Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, i, prec, num, egale=1;
cin >> n;
cin >> prec;
for (i=2; i<=n; ++i)
{
cin >> num;
if (num!=prec) egale=0;
prec=num;
}
if (egale==1) cout << "DA";
else cout << "NU";
return 0;
}
Explicație:
nu am generat vector... evit asta dacă e posibil...
folosesc două variabile pentru şirul de numere, prec, pentru precedent şi num, pentru următorul introdus. Din start variabila egale=1, de parcă deacum toate sunt egale. Dacă la un moment oarecare prec!=num, atunci egale=0 şi rămâne cu această valoare până la sfârşit, unde se verifică ce valoare are varabila egale. Dacă a rămas 1, reese că toate sunt egale, altfel, nu.
p.s. Eu am pus un comentariu, că la codul tău, ok=1 când întîlneşte o egalitate (poate fi şi unica) de elemente vecine egale.
Sper că am fost explicit... Succese!
Dacă apar întrebăr, întreabă şi ţi se va răspunde...