Pagini recente » Cod sursa (job #236384) | Cod sursa (job #1061251) | Cod sursa (job #2462053) | Cod sursa (job #2968781) | Cod sursa (job #138083)
Cod sursa(job #138083)
var fi,fo:text;
n,i,max,T,ll:longint;
a:array[1..2,1..70001]of longint;
procedure solve;
var i,niv,aux,nn,ct:longint;
begin
ct:=0; niv:=1; nn:=2;
while a[niv,1]<>1 do
begin
i:=1;
while i<=n do
if (a[niv,i]=max)and(a[niv,i+1]=max)and(i<n) then
begin
inc(ct);
a[nn,ct]:=max-1;
inc(i,2);
end
else
if a[niv,i]=max then
begin
writeln(fo,'NU');
exit;
end
else
begin
inc(ct);
a[nn,ct]:=a[niv,i];
inc(i);
end;
if ct=n then begin writeln(fo,'NU'); exit; end;
if ((n-ct)*2)>(1 shl (max-1)) then begin writeln(fo,'NU'); exit; end;
max:=max-1;
n:=ct;
ct:=0;
aux:=niv;
niv:=nn;
nn:=aux;
end;
writeln(fo,'DA');
end;
begin
assign(fi,'nivele.in'); reset(fi);
assign(fo,'nivele.out'); rewrite(fo);
read(fi,T);
for ll:=1 to T do
begin
read(fi,n);
max:=0;
for i:=1 to n do
begin
read(fi,a[1,i]);
if a[1,i]>max then max:=a[1,i];
end;
solve;
end;
close(fi);
close(fo);
end.