题解 P1535 【游荡的奶牛】
const dx:array[1..4]of integer=(1,-1,0,0); dy:array[1..4]of integer=(0,0,1,-1);
var n,m,t,i,j,ans,r1,r2,c1,c2:longint; a:array[1..100,1..100]of char; f:array[1..100,1..100]of boolean;
procedure try(x,y,s:longint); var i,xx,yy:longint; begin if(s>t) then exit; if (s=t)and(x=r2)and(y=c2) then begin inc(ans);exit;end; for i:=1 to 4 do begin xx:=x+dx[i]; yy:=y+dy[i]; if (xx>=1)and(yy>=1)and(xx<=n)and(yy<=m) and(not f[xx,yy])and(a[xx,yy]='.') then begin f[xx,yy]:=true; try(xx,yy,s+1); f[xx,yy]:=false; end; end; end;
begin readln(n,m,t); for i:=1 to n do begin for j:=1 to m do read(a[i,j]); readln; end; readln(r1,c1,r2,c2); try(r1,c1,0); writeln(ans); end.