Cod sursa(job #578689)
#include<stdio.h>
#define maxN 50005
FILE*f=fopen("nivele.in","r");
FILE*g=fopen("nivele.out","w");
int T,ii,n,vf,St[maxN],i;
inline void Solve () {
for ( i = 1 ; i <= n ; ++i ){
fscanf(f,"%d",&St[++vf]);
while ( vf > 1 && St[vf] == St[vf-1] ){
vf -= 2;
St[++vf] = St[vf+1] - 1;
}
}
}
int main () {
fscanf(f,"%d",&T);
for ( ii = 1 ; ii <= T ; ++ii ){
fscanf(f,"%d",&n); vf = 0;
Solve();
if ( vf == 1 && St[vf] == 1 ){
fprintf(g,"DA\n");
}
else{
fprintf(g,"NU\n");
}
}
fclose(f);
fclose(g);
return 0;
}