Cod sursa(job #205738)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 2 septembrie 2008 20:14:55
Problema Nivele Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 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()
{
freopen("nivele.in","r",stdin);
freopen("nivele.out","w",stdout);
int T;
scanf("%d", &T);
while (T--)
      {
      scanf("%d", &N);
      for (i=1;i<=N;++i)
	   scanf("%d", &v[i]);
      nr=s=stv[1]=1;
      //caz particular
      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--;
		      if (s>0) stv[s]=0;
		      }
		 }
		if (nr+1!=N |s!=0) OK=FALSE;
		if (OK==TRUE) printf("DA\n");
			 else printf("NU\n");
}
return 0;
}