Cod sursa(job #2029068)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 29 septembrie 2017 10:19:58
Problema Nivele Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.79 kb

#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;
}