Pagini recente » Cod sursa (job #2742816) | Cod sursa (job #694379) | Cod sursa (job #15175) | Cod sursa (job #283735) | Cod sursa (job #137324)
Cod sursa(job #137324)
#include <stdio.h>
#define nm 100100
int T, n, a[nm], st[nm];
int ok()
{
int crt;
st[0] = 1;
st[1] = 0;
for (int i = 1; i <= n; ++i) {
if (a[i] > n || st[st[0]] > a[i])
return 0;
if (st[st[0]] < a[i]) {
crt = st[st[0]--] + 1;
for (int j = crt; j <= a[i]; ++j)
st[++st[0]] = j;
} else
--st[0];
if (st[1] != 1)
return 0;
}
return (st[0] == 1);
}
int main()
{
freopen("nivele.in", "r", stdin);
freopen("nivele.out", "w", stdout);
scanf("%d", &T);
for (int t = 1; t <= T; ++t) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d", &a[i]);
if (ok())
printf("DA\n");
else
printf("NU\n");
}
}