Thứ Hai, 9 tháng 5, 2022

CHATGO PASCAL

var a:array[0..1000000] of longint;
    j,i:longint;
    m,n,t,h,s:int64;
    k:real;

procedure nhap;
var i:longint;
begin
    readln(n,m);
    for i:=1 to n do
        read(a[i]);
end;

function check(h:int64):boolean;
var ok:boolean;
begin
    s:=0;
    for i:=1 to n do
        if a[i]>h then s:=s+a[i]-h;
    if s>=m then exit(true)
    else exit(false);
end;

function  tknp(l,r:longint):longint;
var mid,h:longint;
begin
    h:=0;
    while l<=r do
    begin
        mid:=(l+r) div 2;
        if check(mid)=true then
        begin
            h:=mid;
            l:=mid+1;
        end
    else
        r:=mid-1;
    end;
    exit(h);
end;

{ procedure chat_de_quy(l,r:longint);
var mid:longint;
begin
    if l>r then exit;
    mid:=(l+r)div 2;
    if check(mid)=true then
    begin
        h:=mid;
        chat(mid+1,r);
    end
    else chat(l,mid-1);
end;}

procedure giai;
var maxx,h:longint;
begin
    maxx:=0;
    for i:=1 to n do
        if maxx<a[i] then maxx:=a[i];
    //writeln(maxx);
    h:=tknp(0,maxx);
    writeln(h);
end;
begin
    assign(input,'chatgo.inp');reset(input);
    assign(output,'chatgo.out');rewrite(output);
    nhap;
    giai;
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.