{
ID:lstlst12
PROG:game1
LANG:PASCAL
}
program game1;
var
n:longint;
f,sum:array [-1..100,-1..100] of longint;
a:array [0..100] of longint;
procedure init;
var
i,j,temp:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
begin
temp:=0;
for j:=i to n do
begin
inc(temp,a[j]);
sum[i,j]:=temp;
end;
end;
end;
function max(x,y:longint):longint;
begin
if x>y then exit(x) else exit(y);
end;
procedure main;
var
i,j:longint;
begin
for i:=n downto 1 do
begin
for j:=i to n do
begin
f[i,j]:=max(sum[i,j]-f[i+1,j],sum[i,j]-f[i,j-1]);
end;
end;
end;
begin
assign(input,'game1.in'); reset(input);
assign(output,'game1.out'); rewrite(output);
init;
main;
writeln(f[1,n],' ',sum[1,n]-f[1,n]);
close(input); close(output);
end.
A Game (game1)[USACO 3.3.5] 代码
最新推荐文章于 2017-08-07 20:36:00 发布