Pagini recente » Cod sursa (job #3243184) | Cod sursa (job #136571) | Cod sursa (job #312350) | Cod sursa (job #944625) | Cod sursa (job #177634)
Cod sursa(job #177634)
#include<fstream.h>
ifstream fin("nivele.in");
ofstream fout("nivele.out");
struct nod
{int a,b;
nod *urm;}*u;
int t,n,k;
void sterge()
{nod *p;
p=u->urm;
delete u;
u=p;
}
void scade()
{u->b--;
k--;
if(u->a>u->b) sterge();
}
void adauga(int x)
{int y=u->b;
scade();
nod *p;
p=new nod;
p->a=y+1;
p->b=x;
k+=x-y;
p->urm=u;
u=p;
}
void curata()
{while(u!=NULL) sterge();
}
int main()
{fin>>t;
int i,j,m,x,ok;
for(i=1;i<=t;i++)
{fin>>m;
k=0;
ok=1;
for(j=1;j<=m && ok;j++)
{fin>>x;
if(u==NULL)
{u=new nod;
u->a=2;
u->b=x;
u->urm=NULL;
k=x-1;
}
else
{if(u->b==x) scade();
else
if(x<u->b) ok=0;
else adauga(x);
}
if(k==0 && j<m) ok=0;
}
if(k>0) ok=0;
if(ok) fout<<"DA\n";
else fout<<"NU\n";
curata();
}
fin.close();
fout.close();
return 0;
}