const fi='xeptrung.inp';fo='xeptrung.out';
var n,m:longint;
a:array[1..100000] of longint;
dmin:longint;sum:int64;
procedure enter;
var i:longint;
begin
readln(n,m); dmin:=maxlongint;
for i:=1 to n do
begin
readln(a[i]);
sum:=sum+a[i];
if a[i]<dmin then dmin:=a[i];
end;
end;
Function Check(val:int64):Boolean;
Var dem,i:longint;
s:int64;
Begin
dem:=1; s:=0;
for i:=1 to n do
if s+a[i]<=val then s:=s+a[i]
else
begin
if a[i]>val then exit(false);
inc(dem);
if dem>M then exit(false);
s:=a[i];
end;
exit(true);
End;
Procedure solve;
Var Dau,Cuoi,Giua,res,dmax:int64;
Begin
//Res:=dmax+1;
{Chat nhi phan ket qua}
Dau:=dmin-1; Cuoi:=sum+1;
while (dau<cuoi) do
begin
Giua:=(Dau+Cuoi)div 2;
if Check(Giua) then
begin
Res:=Giua;
Cuoi:=Giua-1;
end
else Dau:=Giua+1;
end;
writeln(res);
End;
begin
assign(input,fi);reset(input);
assign(output,fo);rewrite(output);
enter;
solve;
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Hai, 9 tháng 5, 2022
XEPTRUNG PASCAL
Đăng ký:
Đăng Nhận xét (Atom)
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.