比赛 暑假培训B班二测 评测结果 AAAAAA
题目名称 返回住所 最终得分 100
用户昵称 bingo 运行时间 0.001 s
代码语言 Pascal 内存使用 0.17 MiB
提交时间 2012-07-22 11:24:40
显示代码纯文本
const
 s:array[1..4,1..2]of integer=((0,-1),(-1,0),(0,1),(1,0));
var
 r,c,k,i,j,t:integer;
 a:array[1..5,1..5]of char;
 b:array[0..6,0..6]of boolean;
procedure can(y,x,l:integer);
 var
  i,j:integer;
 begin
  b[y,x]:=false;
  if (x=c)and(y=1)and(l<=k) then begin t:=t+1;b[y,x]:=true;exit;end;
  if (l>=k)and((x<>c)or(y<>1)) then begin b[y,x]:=true;exit;end;
  for i:=1 to 4 do
   if b[y+s[i,1],x+s[i,2]] then can(y+s[i,1],x+s[i,2],l+1);
  b[y,x]:=true;
 end;
begin
 assign(input,'backbarn.in');
 assign(output,'backbarn.out');
 reset(input);
 rewrite(output);
 readln(r,c,k);
 for i:=1 to r do
  begin
  for j:=1 to c do
   begin
   read(a[i,j]);
   if a[i,j]='.' then b[i,j]:=true;
   end;
  readln;
  end;
 can(r,1,1);
 write(t);
close(input);
close(output);
end.