xiefangyan001 2012-07-10 02:09:00
点我顶贴
收藏
删除
program ex1;
var a,add:array[1..1000]of integer;
n,m,i,k,j:integer;
f:array[1..1000,1..1000]of integer;
function max(s1,s2:integer):integer;
begin
if s1>s2 then max:=s1 else max:=s2;
end;
function min(s1,s2:integer):integer;
begin
if s1<s2 then min:=s1 else min:=s2;
end;
begin
read(n,m);
for i:=1 to m do
for j:=1 to n do
f[i,j]:=maxint;
for i:=1 to n do
begin
readln(a[i]);
add[i]:=add[i-1]+a[i];
f[1,i]:=add[i];
end;
for i:=2 to m do
for j:=i to n do
for k:=1 to j-1 do
f[i,j]:=min(f[i,j],max(f[i-1,k],add[j]-add[k]))
write(f[n,m]);
end.