Pagini recente » Cod sursa (job #1595458) | Cod sursa (job #860768) | Cod sursa (job #1715661) | Cod sursa (job #2657651) | Cod sursa (job #137258)
Cod sursa(job #137258)
#include <stdio.h>
FILE *f=fopen("nivele.in","rt");
FILE *g=fopen("nivele.out","wt");
#define NMAX 501
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;
}