记录编号 |
135932 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2010]乌龟棋 |
最终得分 |
100 |
用户昵称 |
FoolMike |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.353 s |
提交时间 |
2014-11-01 21:27:56 |
内存使用 |
12.04 MiB |
显示代码纯文本
var
a:array[1..4]of longint;
n,m,i,j,k,l:longint;
v:array[-1..40,-1..40,-1..40,-1..40]of longint;
f:array[1..350]of longint;
function tt(s1,s2,s3,s4:longint):longint;
var
t,a:longint;
begin
a:=0;
if v[s1,s2,s3,s4]>=0 then tt:=v[s1,s2,s3,s4]
else
begin
t:=tt(s1-1,s2,s3,s4);
if a<t+f[1+s1+s2*2+s3*3+s4*4] then a:=t+f[1+s1+s2*2+s3*3+s4*4];
t:=tt(s1,s2-1,s3,s4);
if a<t+f[1+s1+s2*2+s3*3+s4*4] then a:=t+f[1+s1+s2*2+s3*3+s4*4];
t:=tt(s1,s2,s3-1,s4);
if a<t+f[1+s1+s2*2+s3*3+s4*4] then a:=t+f[1+s1+s2*2+s3*3+s4*4];
t:=tt(s1,s2,s3,s4-1);
if a<t+f[1+s1+s2*2+s3*3+s4*4] then a:=t+f[1+s1+s2*2+s3*3+s4*4];
tt:=a;
v[s1,s2,s3,s4]:=a;
end;
end;
begin
assign(input,'tortoise.in');
reset(input);
assign(output,'tortoise.out');
rewrite(output);
read(n,m);
for n:=1 to n do
read(f[n]);
for i:=0 to 40 do
for j:=0 to 40 do
for k:=0 to 40 do
for l:=0 to 40 do
v[i,j,k,l]:=-1;
v[0,0,0,0]:=f[1];
for m:=1 to m do
begin
read(i);
inc(a[i]);
end;
writeln(tt(a[1],a[2],a[3],a[4]));
close(input);close(output);
end.