/TILE - Chồng gạch

<Problem>

http://ntucoder.net/Problem/Details/3323
              USES CRT;
        type    Arr=array[1..1000000] of int32;
        var     n,i,dem:int32;
                a:Arr;
PROCEDURE SORT (var a:Arr; l,r:int32);
var x,tg,i,j:int32;
begin
    i:=l;
    j:=r;
    x:=a[(l+r) div 2];
    repeat
        while a[i]<x do inc(i);
        while a[j]>x do dec(j);
        if not (i>j) then begin
            tg:=a[i];
            a[i]:=a[j];
            a[j]:=tg;
            inc(i);
            dec(j);
        end;
    until i>j;
    if j>l then SORT(a,l,j);
    if i<r then SORT(a,i,r);
end;
                begin
                    readln(n);
                    for i:=1 to n do read(a[i]);
                    SORT(a,1,n);
                    dem:=0;
                    for i:=1 to n do
                    if a[i]>=dem then inc(dem);
                    writeln(dem);
                    readln
                end.