比赛 暑假培训B班二测 评测结果 AAAAAA
题目名称 返回住所 最终得分 100
用户昵称 o_o 运行时间 0.001 s
代码语言 Pascal 内存使用 0.17 MiB
提交时间 2012-07-22 11:06:15
显示代码纯文本
var
a,b,c,d,m,n,f,r,t,w,v:longint;
l:array[0..10,0..10]of longint;
k:array[0..10,0..10]of char;
lx,ly:array[1..8]of longint;

zx,zy:array[0..1000]of longint;

procedure dfs(x,y,o,fx:longint);
var
z,i,j:longint;
begin
if o<=n then
begin
if (x=r)and(y=1) then
d:=d+1
else

for i:=1 to 4 do
if fx<>i then
if l[x+lx[i],y+ly[i]]=0 then
if (x+lx[i]<r+1)and(x+lx[i]>0)and(y+ly[i]>0)and(y+ly[i]<f+1) then
if k[x+lx[i],y+ly[i]]<>'T' then
begin
l[x+lx[i],y+ly[i]]:=1;
if i=1 then
dfs(x+lx[i],y+ly[i],o+1,2);
if i=2 then
dfs(x+lx[i],y+ly[i],o+1,1);
if i=3 then
dfs(x+lx[i],y+ly[i],o+1,4);
if i=4 then
dfs(x+lx[i],y+ly[i],o+1,3);
l[x+lx[i],y+ly[i]]:=0;
end;
end;

end;
begin
assign(input,'backbarn.in');
assign(output,'backbarn.out');
reset(input);
rewrite(output);
lx[1]:=1;
lx[2]:=-1;
lx[3]:=0;
lx[4]:=0;

ly[1]:=0;
ly[2]:=0;
ly[3]:=-1;
ly[4]:=1;

read(f,r,n);

for a:=1 to f do
begin
readln;
for b:=1 to r do
read(k[b,a]);

end;
l[1,f]:=1;
dfs(1,f,0,0);
write(d);
close(input);
close(output);
end.