Pagini recente » Cod sursa (job #2106081) | Cod sursa (job #1982436) | Cod sursa (job #1343794) | Cod sursa (job #2909124) | Cod sursa (job #137709)
Cod sursa(job #137709)
program nivele;
var A,B,C,D : array [1..50000] of longint;
T : shortint;
i,n,j,cb : word;
f,g : text;
ok : boolean;
procedure devide(x:longint);
var l : longint;
begin
for l := x to cb do
D[l+1] := B[l];
inc(D[x+1]);
D[x] := D[x+1];
for l := x to cb do
B[l] := D[l];
end;
begin
assign(f,'nivele.in');
reset(f);
readln(f,T);
assign(g,'nivele.out');
rewrite(g);
for j := 1 to T do begin
B := C;
B[1] := 1;
cb := 1;
read(f,n);
for i := 1 to n do
read(f,A[i]);
repeat
ok := true;
for i := 1 to n do
if A[i]<>B[i] then begin
inc(cb);
devide(i);
ok := false;
break;
end;
until ok or (n<cb);
if ok then writeln(g,'DA')
else writeln(g,'NU');
end;
close(f);
close(g);
end.