Cod sursa(job #137946)

Utilizator MariusMarius Stroe Marius Data 17 februarie 2008 17:41:38
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>

using namespace std;

const char iname[] = "nivele.in";
const char oname[] = "nivele.out";

#define MAXN  50005

int main(void)
{
	FILE *fi, *fo;
	
	int stk[MAXN];

	fi = fopen(iname, "r");
	fo = fopen(oname, "w");

	int css;

	for (fscanf(fi, "%d", &css); css > 0; -- css)
	{
		int n;
		fscanf(fi, "%d", &n);

		int stk_len = 0;

		for (int i = 1; i <= n; ++ i)
		{
			int x;
			fscanf(fi, "%d", &x);
			stk_len ++;
			stk[stk_len] = x;
			while (stk_len > 1 && stk[stk_len] == stk[stk_len - 1])
				stk[stk_len - 1] --, stk_len --;
		}

		if (stk_len == 1 && stk[stk_len] == 1)
			fprintf(fo, "DA\n");
		else
			fprintf(fo, "NU\n");
	}

	fcloseall();

	return 0;
}