PTRANG - Phân Trang
Tác giả: flashmt
Ngôn ngữ: Pascal
var f,a:array[0..6000] of longint;
n,l,i,j:longint;
function min(x,y:longint):longint;
begin
if x<y then min:=x else min:=y;
end;
function max(x,y:longint):longint;
begin
if x>y then max:=x else max:=y;
end;
begin
read(n,l);
for i:=1 to n do
begin
read(j);
a[i]:=a[i-1]+j;
f[i]:=l;
end;
for i:=1 to n do
for j:=i-1 downto 0 do
if a[i]-a[j]<=l then
f[i]:=min(f[i],max(f[j],l-a[i]+a[j]))
else break;
writeln(f[n]);
end.