Pagini recente » Cod sursa (job #1856705) | Cod sursa (job #933964) | Istoria paginii runda/judet9-1 | Cod sursa (job #2030914) | Cod sursa (job #1151258)
type Tnum=array[1..17000] of longint;
var a,b:text;
l,i,j,minG,maxSum,k,n,mx:longint;
t,s:Tnum;
function min(a,b:longint):longint;
begin
if a>b then min:=b else min:=a;
end;
function calc(maxSum:longint):boolean;
begin
calc:=false;
i:=1;
j:=1;
while (i<=k) and (j<=n) do
begin
if s[i]+t[j]<maxSum then
begin
s[i]:=s[i]+t[j];
j:=j+1;
end else i:=i+1;
end;
if (i<=n) and (j>n) then calc:=true;
end;
function bs(s,f:longint):longint;
var mid:longint;
begin
bs:=9999999;
if s<=f then
begin
mid:=(s+f) div 2;
if (calc(mid)) then
begin
bs:=min(mid,bs(s,mid-1));
end else
bs:=min(mid,bs(mid+1,f));
end;
end;
begin
assign(a,'transport.in');
reset(a);
assign(b,'transport.out');
rewrite(b);
read(a,n,k);
maxSum:=0;
for l:=1 to n do
begin
read(a,t[l]);
maxSum:=maxSum+t[l];
end;
mx:=-1;
for l:=1 to n do
if t[l]>mx then mx:=t[l];
writeln(b,bs(mx,maxSum));
{i:=1;
j:=1;
Calc;
repeat
begin
if j>n then
begin
maxSum:=Max(i);
minG:=maxSum;
Calc;
end;
end;
until j<=n;
writeln(b,minG);}
close(a);
close(b);
end.