比赛 |
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.