Cod sursa(job #1855302)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 23 ianuarie 2017 16:14:59
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <cstdio>
#define MAXN 50050

using namespace std;

int t, n, a[MAXN];
int st[MAXN], nq;

int solve()
{
    st[nq = 1] = a[1];
    for (int i = 2; i <= n; i++)
    {
        while (nq && a[i] == st[nq])
            nq--, a[i]--;
        st[++nq] = a[i];
    }
    return nq == 1 && st[nq] == 1;
}

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

    scanf("%d", &t);
    while (t--) {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
        }
        if (solve())
            printf("DA\n");
        else
            printf("NU\n");
    }


    return 0;
}