program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var tab,tabh,tabe:array of integer;
i,h,e,k: integer;
n: integer;
begin
randomize;
writeln('Podaj liczbe elementów tablicy');
readln(n);
setlength(tab,n);
for i:=1 to n do
begin
tab[i]:=random(20)+1;
write(tab[i],' ');
end;
k:=tab[1];
for i:=2 to n do
begin
if tab[i]>k then
k:=tab[i];
end;
writeln('k=',k);
setlength(tabh,k);
for h:=1 to k do
begin
tabh[h]:=0;
write(tabh[h],' ');
end;
for i:=1 to n do
tabh[tab[i]]:=tabh[tab[i]]+1;
writeln;
for h:=1 to k do
begin
write(tabh[h],' ');
end;
writeln;
for h:=2 to k do
tabh[h]:=tabh[h]+tabh[h-1];
for h:=1 to k do
begin
write(tabh[h],' ');
end;
setlength(tabe,n);
for i:=n downto 1 do
begin
tabe[tabh[tab[i]]]:=tab[i];
tabh[tab[i]]:=tabh[tab[i]] - 1;
end;
writeln;
for e:=1 to n do
begin
write(tabe[e],' ');
end;
readln;