PTRANG - Phân Trang

Tác giả: RR

Ngôn ngữ: Pascal

program PTRANG;
uses
  math;
const
  FINP='';
  FOUT='';
  MAXN=6001;
var
  n,l:longint;
  d,w,t:array[0..MAXN] of longint;
procedure inp;
var
  f:text;
  i:longint;
begin
  assign(f,FINP); reset(f);
  readln(f,n,l);
  for i:=1 to n do
    readln(f,w[i]);
  close(f);
end;
procedure ans;
var
  f:text;
begin
  assign(f,FOUT); rewrite(f);
  writeln(f,d[n]);
  close(f);
end;
procedure solve;
var
  i,j:longint;
begin
  t[0]:=0;
  for i:=1 to n do t[i]:=t[i-1]+w[i];
  for i:=1 to n do
    begin
      d[i]:=l;
      for j:=i downto 1 do
        begin
          if t[i]-t[j-1]>l then break;
          d[i]:=min(d[i],max(l-(t[i]-t[j-1]),d[j-1]));
        end;
    end;
end;
begin
  inp;
  solve;
  ans;
end.

Download