Cod sursa(job #137739)

Utilizator DastasIonescu Vlad Dastas Data 17 februarie 2008 14:14:54
Problema Nivele Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

const int maxn = 50001;

FILE *in = fopen("nivele.in","r"), *out = fopen("nivele.out","w");

int t;
int n, k;
int a[maxn];
int b[maxn];

void go(int d, int h)
{
    if ( a[k] == h )
    {
        b[k++] = h;
        return;
    }

    if ( k == n )
        return;

    go(d+1, h+1);
    go(d+1, h+1);
}

int main()
{
    fscanf(in, "%d", &t);

    while ( t-- )
    {
        fscanf(in, "%d", &n);
        k = 1;
        for ( int i = 1; i <= n; ++i )
            fscanf(in, "%d", &a[i]);

        go(1, 1);
        int i;
        for ( i = 1; i <= n; ++i )
            if ( a[i] != b[i] )
                fprintf(out, "NU\n"), i = n + 3;
        if ( i != n + 4 )
            fprintf(out, "DA\n");
    }


	return 0;
}