Pagini recente » Cod sursa (job #1323545) | Cod sursa (job #1843876) | Cod sursa (job #1972637) | Cod sursa (job #994512) | Cod sursa (job #138129)
Cod sursa(job #138129)
# include <stdio.h>
# define nmax 60000
# define FIN "nivele.in"
# define FOUT "nivele.out"
int T,i,n,j;
long max,a[2][nmax];
void solve(long max, long n)
{
long i,j,niv=0,nev=1,aux,ct;
for (i=max; i>=2; i--)
{
ct=0; j=1;
while (j<=n)
if (a[niv][j]==i&&a[niv][j+1]==i&&j<n)
{
a[nev][++ct]=i-1;
j+=2;
}
else
if (a[niv][j]==i&&a[niv][j+1]!=i)
{
printf("NU\n");
return;
}
else
{
a[nev][++ct]=a[niv][j];
j++;
}
if (n==ct)
{
printf("NU\n");
return;
}
aux=niv; niv=nev; nev=aux; n=ct;
}
if (a[niv][1]==1) printf("DA\n");
else printf("NU\n");
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d",&T);
for (i=1; i<=T; i++)
{
scanf("%d",&n);
max=0;
for (j=1; j<=n; j++)
{
scanf("%ld",&a[0][j]);
if (a[0][j]>max) max=a[0][j];
}
solve(max,n);
}
return 0;
}