比赛 noip-081029 评测结果 AAAAATTTTT
题目名称 取数字问题 最终得分 50
用户昵称 zhai 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-10-29 20:01:27
显示代码纯文本
program number;
  const
    max=10;
  type
    sz=array[1..max,1..max]of integer;
  var
    f1,f2:text;
    a:sz;
    n,m:integer;
    ans:integer;
    procedure ini;
      var
        i,j:integer;
      begin
        assign(f1,'number.in');reset(f1);
        assign(f2,'number.out');rewrite(f2);
        read(f1,m,n);
        fillchar(a,sizeof(a),0);
        for i:=1 to m do
          for j:=1 to n do read(f1,a[i,j]);
        close(f1);
        ans:=maxint;
      end;
    procedure try(x,y,k:integer);
      var
        i:integer;
      begin
        for i:=1 to 2 do begin
          if(x=m)and(y=n)then begin
            inc(k,a[x,y]);
            if(k>0)and(k<ans)then begin
              ans:=k;
              exit;
            end;
          end
          else begin
           if(i=1)and(x+1<=m)then try(x+1,y,k+a[x,y])
           else begin
             if y+1<=n then try(x,y+1,k+a[x,y]);
           end;
          end;
        end;
      end;
  begin
    ini;
    try(1,1,0);
    if ans<>maxint then write(f2,ans)
      else write(f2,-1);
    close(f2);
  end.