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.