Cod sursa(job #137283)

Utilizator Spike7d8Cristian Varvara Spike7d8 Data 17 februarie 2008 10:55:49
Problema Nivele Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.84 kb
#include <stdio.h>
#include <list>

using namespace std;


#define MAX 50176

int v[MAX];
list<int> a;


int __fastcall adauga(register int n)
{
	if (a.empty())
		return -1;

	int t = a.front();
	a.pop_front();

	if (n < t)
		return -1;

	if (n > t)
		for (register int i = t + 1; i <= n; i++)
			a.push_front(i);

	return 0;
}


int main()
{
	freopen("nivele.in", "rt", stdin);
	freopen("nivele.out", "wt", stdout);

	int nteste;
	scanf("%d", &nteste);
	for (int test = 0; test < nteste; test++)
	{
		register int n, i;
		scanf("%d", &n);
		
		for (i = 0; i < n; i++)
			scanf("%d", &v[i]);

		if (!a.empty())
			a.clear();
		a.push_back(1);

		for (i = 0; i < n; i++)
			if (adauga(v[i]) != 0)
				break;

		if (i == n && a.empty())
			printf("DA\n");
		else
			printf("NU\n");
	}

	return 0;
}