比赛 noip-081029 评测结果 AWAAATTTTT
题目名称 取数字问题 最终得分 40
用户昵称 SMXX 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-10-29 21:53:36
显示代码纯文本
program number;
var
f1,f2:text;
a:array[1..10,1..10]of integer;
b:array[0..11,0..11]of integer;
i,j,k,m,n,x,y:integer;
function min(x,y:integer):integer;
begin
if x<y then min:=x
       else min:=y;
end;
begin
assign(f1,'number.in');
assign(f2,'number.out');
reset(f1);
rewrite(f2);

read(f1,m,n);
for i:= 1to m do
 for j:= 1to n do read(f1,a[i,j]);
 x:=n;
  if m>n then x:=m;
 for i:=1to x+1 do
  for j:=1to x+1 do b[i,j]:=300;
  for i:=1 to x-1 do
   for j:=0 to i do begin
       b[m,n]:=a[m,n];
       b[x-i+j,x-j]:=a[x-i+j,x-j]+min(b[x-i+j+1,x-j],b[x-i+j,x-j+1]);
       end;
   for i:=x-1 downto 1 do
    for j:= i downto 1  do
      b[i-j+1,j]:=a[i-j+1,j]+min(b[i-j+2,j],b[i-j+1,j+1]);

writeln(f2,b[1,1]);
close(f1);
close(f2);
end.