Pagini recente » Cod sursa (job #3262586) | Cod sursa (job #364315) | Cod sursa (job #2351634) | Cod sursa (job #1482586) | Cod sursa (job #137304)
Cod sursa(job #137304)
#include <stdio.h>
FILE *f=fopen("nivele.in","rt");
FILE *g=fopen("nivele.out","wt");
#define NMAX 50001
struct nod
{ long val;
nod *urm;
};
long n,a[NMAX];
int fct()
{ long i;
for (i=1;i<=n;i++) if (a[i]>n) return 0;
long k=1;
nod *x=new nod;
x->val=1;
x->urm=NULL;
while (x!=NULL)
{ if (x->val>a[k]) return 0;
if (x->val==a[k]) { x=x->urm;k++;}
else
{ nod *y=new nod;
x->val++;
y->val=x->val;
y->urm=x->urm;
x->urm=y;
}
}
if (k==n+1) return 1;
return 0;
}
int main()
{ long t,k,i;
fscanf(f,"%ld",&t);
for (k=1;k<=t;k++)
{ fscanf(f,"%ld",&n);
for (i=1;i<=n;i++) fscanf(f,"%ld",&a[i]);
if (fct()) fprintf(g,"DA\n");
else fprintf(g,"NU\n");
}
fclose(f);
fclose(g);
return 0;
}