Pagini recente » Monitorul de evaluare | Cod sursa (job #400006) | Cod sursa (job #2072918) | Cod sursa (job #103340) | Cod sursa (job #2029068)
#include <fstream>
using namespace std;
ifstream fin ("nivele.in");
ofstream fout("nivele.out");
int t, i, nr_termeni, nr_perechi, n, ant, a, ant_egal_a, j, p, ver;
int verificare(int nr){
int coun = 0;
while(nr>0){
nr /= 2;
coun ++;
}
return coun-1;
}
int main()
{
fin>>t;
for(i=1;i<=t;i++){
nr_termeni=0;
nr_perechi=0;
ver=0;
ant_egal_a=0;
fin>>n;
fin>>a;
for(j=2;j<=n;j++){
ant=a;
fin>>a;
if(a==ant){
nr_perechi++;
nr_termeni++;
ant_egal_a=1;
}
else
if(nr_termeni%2==0 && nr_termeni!=0){
ver=1;
fout<<"NU"<<'\n';
break;
}
else{
nr_perechi=nr_termeni;
if(ant_egal_a==0){
if(a<ant || a>ant+1){
ver=1;
fout<<"NU"<<'\n';
break;
}
}
else{
if(a==ant){
fout<<"NU"<<'\n';
ver=1;
break;
}
ant_egal_a=0;
}
}
}
if(nr_termeni%2==0){
fout<<"NU"<<'\n';
continue;
}
if(ver!=1){
if(verificare(n)<=nr_perechi && ver!=1)
fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
}
return 0;
}