Cod sursa(job #137208)

Utilizator sims_glAlexandru Simion sims_gl Data 17 februarie 2008 10:16:28
Problema Nivele Scor 20
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.58 kb
#include <stdio.h>

#define nm 100100

int T, n, a[nm], st[nm];

int ok()
{
	int crt;
	
	for (int i = 1; i <= n; ++i) {
		if (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];
	}

	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");
	}
}