Cod sursa(job #137659)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 17 februarie 2008 12:52:58
Problema Nivele Scor 30
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.87 kb
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.