讨论 / 为什么90分
Fish、のTorres 2013-05-13 10:38:00
点我顶贴 收藏 删除
var a:array[0..200]of longint;

fmax,fmin,s:array[0..200,0..200]of longint;

w,i,j,n,k,b,c:longint;

function min(a,b:longint):longint;

begin

if a>b then exit(b) else exit(a);

end;

function max(a,b:longint):longint;

begin

if a>b then exit(a) else exit(b);

end;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=n+1 to 2*n do a[i]:=a[i-n];

for i:=1 to 2*n do begin

for j:=1 to 2*n do fmin[i,j]:=999999999;

fmin[i,i]:=0;

end;

for i:=1 to 2*n do begin

fmin[i,i+1]:=a[i]+a[i+1];

fmax[i,i+1]:=a[i]+a[i+1];

end;

for i:=1 to 2*n-1 do begin

for j:=i to 2*n do s[i,j]:=s[i,j-1]+a[j];

end;

for i:=3 to n do begin

for j:=1 to n do begin

w:=i+j-1;

for k:=j to w-1 do begin

fmax[j,w]:=max(fmax[j,w],fmax[j,k]+fmax[k+1,w]+s[j,w]);

fmin[j,w]:=min(fmin[j,w],fmin[j,k]+fmin[k+1,w]+s[j,w]);

end;

end;

end;

b:=maxlongint;

for i:=1 to n do begin

b:=min(b,fmin[i,i+n-1]);

c:=max(c,fmax[i,i+n-1]);

end;

writeln(b);

writeln(c);

end.

#1 keroro@2013-05-13 10:38:00
回复 删除
n的界限

题目说1 <= n <= 100, 但貌似最后一个点大于100, 我是把下表扩大后就AC了.

#2 460289052@2013-12-08 00:07:38
回复 删除
n会大于100?
查看更多回复
提交回复