Cod sursa(job #137690)

Utilizator sealTudose Vlad seal Data 17 februarie 2008 12:56:20
Problema Nivele Scor 50
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.76 kb
#include<stdio.h>
#define Nm (1<<16)
int A[Nm],n,p;

int read()
{
    int i;

    scanf("%d",&n);
    for(i=0;i<n;++i)
    {
        scanf("%d",A+i);
        if(A[i]>n)
            return 0;
    }
    return 1;
}

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

int solve()
{
    if(!read())
        return 0;
    p=0;
    if(DFS(1) && p==n)
        return 1;
    return 0;
}

int main()
{
    int t;

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

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