比赛 noip-081029 评测结果 AAAAATTTTT
题目名称 取数字问题 最终得分 50
用户昵称 thegy 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-10-29 21:34:26
显示代码纯文本
  1. program number;
  2. var
  3. fin,fout:text;
  4. i,j,ans,ans1,n,m:longint;
  5. a:array[1..10,1..10]of longint;
  6. procedure find(x,y:longint);
  7. begin
  8. if (x=m) and (y=n) then begin
  9. if ans1>0 then begin
  10. if ans1<ans then ans:=ans1;
  11. end;
  12. exit;
  13. end;
  14. if x=m then begin
  15. ans1:=ans1+a[x,y+1];
  16. find(x,y+1);
  17. ans1:=ans1-a[x,y+1];
  18. exit;
  19. end;
  20. if y=n then begin
  21. ans1:=ans1+a[x+1,y];
  22. find(x+1,y);
  23. ans1:=ans1-a[x+1,y];
  24. exit;
  25. end;
  26. ans1:=ans1+a[x+1,y];
  27. find(x+1,y);
  28. ans1:=ans1-a[x+1,y]+a[x,y+1];
  29. find(x,y+1);
  30. ans1:=ans1-a[x,y+1];
  31. end;
  32. begin
  33. assign(fin,'number.in'); reset(fin);
  34. assign(fout,'number.out'); rewrite(fout);
  35. read(fin,m,n);
  36. for i:=1 to m do
  37. for j:=1 to n do read(fin,a[i,j]);
  38. ans:=maxlongint;
  39. ans1:=a[1,1];
  40. find(1,1);
  41. if ans=maxlongint then writeln(fout,'-1')
  42. else writeln(fout,ans);
  43. close(fin);
  44. close(fout);
  45. end.