2017年9月9日普級組がプレゼントを買う苦労


Description
XさんはCさんにN件のプレゼントを选んで、顺番に买って赠りましたが、给料も小遣いもないかわいそうな子供として、M人の親切な学生が援助の手を差し伸べました.しかし、最高の借金を减らすために、XさんはOIコンテストのあなたが合理的に计画して、彼に楽にプレゼントを送ることができることを望んでいます.
Input
最初の行には、スペースで区切られた2つの正の整数NとM以下のN行を入力し、行ごとに10000を超えない正の整数を入力し、贈り物の価格を順次表します.
Output
1つの整数、すなわち最高借入金量.
Sample Input
7 5 100 400 300 100 500 101 400
Sample Output
500
Hint
データ範囲:30%:n<=10 60%:n<=1000 100%:n<=100000
プログラム:
var a:array[0..200000]of longint;
    n,m,i,l,r,mid,t,s:longint;
begin
  readln(n,m);  l:=0;
  for i:=1 to n do
    begin
      readln(a[i]);
      if a[i]>l then l:=a[i];
    end;
  l:=l-1; r:=maxlongint div 2;
  while l+1do
    begin
      mid:=(l+r) div 2;
      t:=0; s:=0;
      for i:=1 to n do
        begin
          if s+a[i]>mid then begin inc(t); s:=0; end;
          s:=s+a[i];
        end;
      if t>m then l:=mid else r:=mid;
   end;
  writeln(r);
end.