Cod sursa(job #138518)

Utilizator sealTudose Vlad seal Data 18 februarie 2008 19:28:29
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#define Nm (1<<16)
int A[Nm],n,p;

void read()
{
    int i;

    scanf("%d",&n);
    for(i=0;i<n;++i)
        scanf("%d",A+i);
}

char DFS(int niv)
{
    if(p==n || A[p]<niv)
        return 0;
    if(A[p]==niv)
    {
        ++p;
        return 1;
    }
    return DFS(niv+1) && DFS(niv+1);
}

int solve()
{
    int i;

    for(i=0;i<n;++i)
        if(A[i]>n)
            return 0;
    p=0;
    return DFS(1) && p==n;
}

int main()
{
    int t;

    freopen("nivele.in","r",stdin);
    freopen("nivele.out","w",stdout);

    scanf("%d",&t);
    while(t--)
    {
        read();
        if(solve())
            printf("DA\n");
        else
            printf("NU\n");
    }
    return 0;
}