比赛 |
20101116 |
评测结果 |
AWWWEEEEEA |
题目名称 |
打砖块 |
最终得分 |
20 |
用户昵称 |
maxiem |
运行时间 |
0.000 s |
代码语言 |
Pascal |
内存使用 |
0.00 MiB |
提交时间 |
2010-11-16 11:26:00 |
显示代码纯文本
program gamea;
var
code,i,j,k,a,t,n,m,tmp:longint;
table,rown,rowy,sumy,sumn:array [0..201,0..201] of longint;
extra:array [1..201,1..201] of boolean;
s:string;
begin
fillchar (rown,sizeof(rown),0);
fillchar (rowy,sizeof(rowy),0);
fillchar (sumn,sizeof(sumn),0);
fillchar (sumy,sizeof(sumy),0);
fillchar (table,sizeof(table),0);
assign (input,'gamea.in');
reset (input);
readln (n,m,k);
for i:=1 to n do begin
readln (s);s:=s+' ';
j:=1;
while s<>'' do begin
val (copy(s,1,pos(' ',s)-1),table[i,j],code);
delete (s,1,pos(' ',s));
if s[1]='Y' then extra[i,j]:=true else extra[i,j]:=false;
delete (s,1,pos(' ',s));
inc(j);
end;
end;
close (input);
assign (output,'gamea.out');
rewrite (output);
for i:=1 to m do begin
t:=n;
while (t>0) and (extra[i,j]) do begin
rown[i,0]:=rown[i,0]+table[t,i];
dec(t);
end;
for j:=1 to n do begin
rowy[i,j]:=rown[i,j-1]+table[t,i];
rown[i,j]:=rowy[i,j];
dec(t);
while (t>0) and (extra[t,i]) do begin
rown[i,j]:=rown[i,j]+table[t,i];
dec(t);
end;
if t<=0 then break;
end;
end;
for j:=1 to m do begin
for i:=0 to k do begin
for a:=0 to n do begin
if a<=i then begin
tmp:=sumn[j-1,i-a]+rown[j,a];
if tmp>sumn[j,i] then sumn[j,i]:=tmp;
if k<i then begin
tmp:=sumy[j-1,i-a]+rown[j,a];
if tmp>sumy[j,i] then sumy[j,i]:=tmp;
end;
if k>0 then begin
tmp:=sumn[j-1,i-a]+rowy[j,a];
if tmp>sumy[j,i] then sumy[j,i]:=tmp;
end;
end;
end;
end;
end;
writeln (sumy[m][k]);
close (output);
end.