Cod sursa(job #534478)

Utilizator Addy.Adrian Draghici Addy. Data 15 februarie 2011 19:32:00
Problema Nivele Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
#include <stack>

using namespace std;

#define NMAX 50050

char S[3 * NMAX], *p;
int t, n, i, x;
stack <int> V;

int main () {
	
	freopen ("nivele.in", "r", stdin);
	freopen ("nivele.out", "w", stdout);
	
	scanf ("%d", &t);
	
	while (t--) {
		
		scanf ("%d ", &n); 
		fgets (S, 3 * NMAX, stdin); p = S;
		
		for (i = 1; i <= n; i++, p++) {
			x = 0;
			while (*p >= '0' && *p <= '9')
				x = x * 10 + (*p - '0'), p++;
			
			while (V.size () >= 1 && V.top () == x) V.pop (), x--;
			V.push (x);
		}
		
		if (V.size () == 1 && V.top () == 1) printf ("DA\n");
		else printf ("NU\n");
	}
	
	return 0;
}