Pagini recente » Cod sursa (job #1153379) | Cod sursa (job #1815085) | Cod sursa (job #1584784) | Cod sursa (job #844898) | Cod sursa (job #131269)
Cod sursa(job #131269)
var fi,fo:text;
n,k,i,j,s,max,nrtr:longint;
v:array[1..16000]of integer;
function verif(k:longint; var trans:longint):boolean;
var i,suma:longint;
begin
trans:=0; suma:=0;
for i:=1 to n-1 do
if v[i]+suma<=k then suma:=suma+v[i]
else
begin
suma:=v[i];
inc(trans);
end;
if suma+v[n]>k then inc(trans,2)
else inc(trans);
if trans=nrtr then verif:=true
else verif:=false;
end;
function find(st,dr:longint):longint;
var mij,trans:longint;
begin
while st<dr do
begin
mij:=(st+dr) shr 1;
if verif(mij,trans) then
begin
while verif(mij-1,trans) do
dec(mij);
find:=mij;
exit;
end
else
if trans>nrtr then st:=mij+1
else dr:=mij-1;
end;
end;
begin
assign(fi,'transport.in'); reset(fi);
assign(fo,'transport.out'); rewrite(fo);
read(fi,n,nrtr);
max:=0; s:=0;
if nrtr>n then nrtr:=n;
for i:=1 to n do
begin
read(fi,v[i]);
s:=s+v[i];
if v[i]>max then max:=v[i];
end;
writeln(fo,find(max,s));
close(fi);
close(fo);
end.