Cod sursa(job #1852241)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 20 ianuarie 2017 17:04:30
Problema Nivele Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>


using namespace std;
ifstream f("nivele.in");
ofstream g("nivele.out");

const int NMax = 100001;

int t,n,start,nr,noduri,x,cit;

void dfs_preorder(int nod,int D){
    if(nr > noduri || n < 0)
        return;
    nr++;

    if(D == x){
        if(n > 0)
            f >> x;
        n--;
    }else{
        if(D < x){
            dfs_preorder(2 * nod, D + 1);
            dfs_preorder(2 * nod + 1, D + 1);
        }
    }
}
int main()
{
    f >> t;
   //g << 1.0*sizeof(a)*2/1024/1024 << '\n';
    while(t--){
        f >> n;
        noduri = n * 2 - 1;
        f >> x;
        n--;
        nr = 0;

        dfs_preorder(1,1);

     //   g << noduri <<  ' ' << nr << '\n';
        if(nr == noduri){
            g << "DA" << '\n';
        }else{
            g << "NU" << '\n';
        }
    }
    return 0;
}