记录编号 6305 评测结果 AAAAAAAAAA
题目名称 取数字问题 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 Pascal 运行时间 0.029 s
提交时间 2008-10-31 20:44:57 内存使用 0.50 MiB
显示代码纯文本
program cch(input,output);
var
 f:array[1..20,1..20,-500..500] of boolean;
 i,j,m,n,k,ans:integer;
 a:array[1..20,1..20] of integer;
begin
 assign(input,'number.in');
 assign(output,'number.out');
 reset(input);
 rewrite(output);
 readln(m,n);
 for i:=1 to m do
  for j:=1 to n do read(a[i,j]);
 for i:=-400 to 400 do f[1,1,i]:=false;
 f[1,1,a[1,1]]:=true;
 for i:=2 to m do
  for j:=-400 to 400 do
   if f[i-1,1,j] then f[i,1,j+a[i,1]]:=true;
 for i:=2 to n do
  for j:=-400 to 400 do
   if f[1,i-1,j] then f[1,i,j+a[1,i]]:=true;
 for i:=2 to m do
  for j:=2 to n do
   for k:=-400 to 400 do
    begin
     f[i,j,k+a[i,j]]:=false;
     if f[i-1,j,k] then f[i,j,k+a[i,j]]:=true;
     if f[i,j-1,k] then f[i,j,k+a[i,j]]:=true;
    end;
 ans:=maxint;
 for i:=1 to 400 do
  if f[m,n,i] then
   if i<ans then ans:=i;
 if ans=maxint then write(-1)
               else write(ans);
 close(input);
 close(output);
end.