Pagini recente » Cod sursa (job #2852279) | Istoria paginii utilizator/delia98 | Cod sursa (job #886656) | Cod sursa (job #210940) | Cod sursa (job #205737)
Cod sursa(job #205737)
#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 (OK=TRUE,i=1;i<=N&&OK==TRUE;++i)
{
//if (s<=0||s>=v[i])
// {OK=FALSE;break;}
while (s<v[i]-1)
{
s++;
stv[s]=1;
nr++;
// if (nr>=N)
// {OK=FALSE;break;}
}
//if (OK==FALSE)
// {break;}
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;
}