Cod sursa(job #137813)

Utilizator ProstuStefan-Alexandru Filip Prostu Data 17 februarie 2008 14:58:57
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

const int NMAX = 1 << 16;

typedef unsigned short tp;

tp T, N, K, Q, A[NMAX];

bool DFS(tp d) {
	if (K >= N || Q > N) return true;

	if (d == A[K]) {
		++K; return false;
	}

	++Q;
	return DFS(d+1) || DFS(d+1);
}

int main(void) {
	freopen("nivele.in", "rt", stdin);
#ifndef _SCREEN_
	freopen("nivele.out", "wt", stdout);
#endif
	int i;
	
	scanf(" %hu", &T);
	while (T--) {
		scanf(" %hu", &N);

		for (i = 0; i < N; ++i)
			scanf(" %hu", A + i);

		K = 0; Q = 1;
		printf((DFS(1) || K < N) ? "NU\n" : "DA\n");
	}

	return 0;
}