比赛 noip-081029 评测结果 AAAAATTTTT
题目名称 取数字问题 最终得分 50
用户昵称 thegy 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-10-29 21:34:26
显示代码纯文本
program number;
var
  fin,fout:text;
  i,j,ans,ans1,n,m:longint;
  a:array[1..10,1..10]of longint;
procedure find(x,y:longint);
begin
  if (x=m) and (y=n) then begin
    if ans1>0 then begin
      if ans1<ans then ans:=ans1;
    end;
    exit;
  end;
  if x=m then begin
    ans1:=ans1+a[x,y+1];
    find(x,y+1);
    ans1:=ans1-a[x,y+1];
    exit;
  end;
  if y=n then begin
    ans1:=ans1+a[x+1,y];
    find(x+1,y);
    ans1:=ans1-a[x+1,y];
    exit;
  end;
  ans1:=ans1+a[x+1,y];
  find(x+1,y);
  ans1:=ans1-a[x+1,y]+a[x,y+1];
  find(x,y+1);
  ans1:=ans1-a[x,y+1];
end;
begin
  assign(fin,'number.in'); reset(fin);
  assign(fout,'number.out'); rewrite(fout);
  read(fin,m,n);
  for i:=1 to m do
    for j:=1 to n do read(fin,a[i,j]);
  ans:=maxlongint;
  ans1:=a[1,1];
  find(1,1);
  if ans=maxlongint then writeln(fout,'-1')
  else writeln(fout,ans);
  close(fin);
  close(fout);
end.