/TAXI - Taxi

<Problem>

http://ntucoder.net/Problem/Details/5523
              Uses Crt;
        Var  n,i,kq:longint; a:array[1..1000000] of longint;   d:array[1..10] of longint; 
        begin
            readln(n);
            for i:=1 to n do
             begin
              read(a[i]);
              inc(d[a[i]]);
             end;
            kq:=kq+d[4];
        
            if d[1]<=d[3] then d[1]:=0 else
             begin
                 d[1]:=d[1]-d[3];
             end;
            kq:=kq+d[3];
            d[3]:=0;
        
            kq:=kq+(d[2]*2+d[1]) div 4;
        
            if (d[2]*2+d[1]) mod 4<>0 then kq:=kq+1;
        
            writeln(kq);
            readln;
        
        End.