Thứ Ba, 3 tháng 5, 2022

CAKES PAS

const      maxn=1000000;
var N:longint;
    kq:longint;
    A:array[1..maxn]of longint;
    ok:array[1..maxn]of byte;
procedure nhap;
var i:longint;
begin
    readln(n);
    for i:=1 to n do read(a[i]);
end;

procedure doi(var a,b:longint);
var c:longint;
begin
    c:=a;
    a:=b;
    b:=c;
end;
procedure sort(l,r:longint);
var i,j,x:longint;
begin
    i:=l;
    j:=r;
    x:=A[(i+j) div 2];
    repeat
        while A[i]>x do inc(i);
        while A[j]<x do dec(j);
        if i<=j then
        begin
            doi(A[i],A[j]);
            inc(i);
            dec(j);
        end;
    until i>j;
    if i<r then sort(i,r);
    if l<j then sort(l,j);
end;
procedure solve;
var i,j:longint;
begin
    sort(1,n);
    //for i:=1 to n do write(a[i],' ');
    kq:=n;
    j:=n div 2 + 1;
    for i:=1 to n do
    begin
        if ok[i]=0 then
        begin
            while(j<=n) and ((2*a[j]>a[i]) or (ok[j]=1)) do inc(j);
            if j>n then break;
            ok[i]:=1;
            ok[j]:=1;
            dec(kq);
        end;
    end;
    write(kq);
end;
begin
    assign(input,'cakes.inp');reset(input);
    assign(output,'cakes.out');rewrite(output);
    nhap;
    solve;
end.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.