Cod sursa(job #205693)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 2 septembrie 2008 16:15:15
Problema Nivele Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

#define TRUE 1
#define FALSE 0
#define NMAX 50001

int v[NMAX];
int stv[NMAX];
int i,N,nr,s,ok;

int main()
{ int T;
freopen("nivele.in","r",stdin);
freopen("nivele.out","w",stdout);
scanf("%d", &T);
while (T--)
      {
      scanf("%d", &N);
      for (i=1;i<=N;++i)
	   scanf("%d", &v[i]);
      nr=s=stv[1]=1;
      if (N==1 && v[1]==1)
	  {
	   printf("DA\n");
	   continue;
	   }
      for (i=1;i<=N;++i)
          {
	   while (s<v[i]-1)
		 {
		  s++;
		  stv[s]=1;
		  nr++;
		  }
		  if (stv[s]==1) stv[s]=0;
		      else while (s>0 && stv[s]==0) s--;
		 }
		ok=TRUE;
		if (nr+1!=N || s!=0) ok=FALSE;
		if (ok==TRUE) printf("DA\n");
			 else printf("NU\n");
}
return 0;
}