Pagini recente » Cod sursa (job #1097464) | wettbewerbssimulation4 | Cod sursa (job #143212) | Cod sursa (job #279433) | Cod sursa (job #277812)
Cod sursa(job #277812)
var i,n,k: integer;
max,min:longint;
s : array[1..16000] of integer;
f : text;
procedure citeste;
begin
read(f,n,k,s[1]);
min := s[1];
max := s[1];
for i := 2 to n do begin
read(f,s[i]);
if s[i] > min then min := s[i];
max := max + s[i];
end;
end;
function verificare(m:longint):boolean;
var x,c : integer;
begin
verificare := true;
x := 1;
c := 0;
for i := 1 to n do begin
if (c + s[i]) <= m then begin
c := c + s[i];
end
else begin
c := s[i];
x := x +1;
if x > k then begin
verificare := false;
break;
end;
end;
end;
end;
function cbin(p,q : longint):longint;
var m,cmin : longint;
begin
cmin := q;
while p <= q do begin
m := (p+q) div 2;
if verificare(m) then begin
cmin := m;
q := m -1;
end
else p := m +1;
end;
cbin := cmin ;
end;
begin
assign(f,'transport.in');reset(f);
citeste; close(f);
assign(f,'transport.out');rewrite(f);
if verificare(min) then write(f,min)
else
write(f,cbin(min,max));
close(f);
end.