记录编号 6318 评测结果 AAAAAAAAAA
题目名称 取数字问题 最终得分 100
用户昵称 GravatarEnAsn 是否通过 通过
代码语言 Pascal 运行时间 0.021 s
提交时间 2008-10-31 21:07:03 内存使用 0.50 MiB
显示代码纯文本
program ex;
type
 sz=array[0..21,0..21,-420..420]of boolean;
 ss=array[0..21,0..21]of integer;
var
 a:ss;
 f:sz;
 f1,f2:text;
 n,m,max:integer;
procedure init;
 var
  i,j,x:integer;
 begin
  assign(f1,'number.in');
  assign(f2,'number.out');
  reset(f1);
  rewrite(f2);
  readln(f1,m,n);
  for i:=1 to m do
   begin
    for j:=1 to n do
      read(f1,a[i,j]);
    readln(f1);
   end;
  f[1,1,a[1,1]]:=true;
  max:=maxint;
 end;
procedure main;
 var
  i,j,k:integer;
 begin
  for i:=1 to m do
   for j:=1 to n do
     for k:=-420 to 420 do
       if (i=m)and(f[i,j,k]=true) then f[i,j+1,k+a[i,j+1]]:=true
              else if (j=n)and(f[i,j,k]=true) then f[i+1,j,k+a[i+1,j]]:=true
                           else if f[i,j,k]=true then
                                begin
                                 f[i,j+1,k+a[i,j+1]]:=true;
                                 f[i+1,j,k+a[i+1,j]]:=true;
                                end;
  for k:=-420 to 420 do
    if f[m,n,k]=true then
      if (k>0)and(k<max) then max:=k;
 end;
begin
 init;
 main;
 if (max=maxint)or(max=0) then writeln(f2,'-1')
                          else writeln(f2,max);
 close(f2);
end.