Cod sursa(job #138331)
Utilizator | Mircea Pasoi domino | Data | 18 februarie 2008 12:34:28 |
---|---|---|---|
Problema | Nivele | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <stdio.h>
#define MAX_N 50005
#define FIN "nivele.in"
#define FOUT "nivele.out"
int T, N, stk[MAX_N], stk_len;
int main(void)
{
int i, lev;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
for (scanf("%d", &T); T; --T)
{
scanf("%d", &N);
for (stk_len = i = 0; i < N; ++i)
{
scanf("%d", &lev);
for (; stk_len > 0 && stk[stk_len-1] == lev; --stk_len, --lev);
stk[stk_len++] = lev;
}
printf("%s\n", (stk_len == 1 && stk[0] == 1) ? "DA" : "NU");
}
return 0;
}