记录编号 |
243374 |
评测结果 |
AAAAAAAAAAAAA |
题目名称 |
[USACO Feb07] 青铜莲花池 |
最终得分 |
100 |
用户昵称 |
甘罗 |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.006 s |
提交时间 |
2016-03-29 20:01:56 |
内存使用 |
0.19 MiB |
显示代码纯文本
program zht;
var
n,m,a,b,qdx,qdy,zdx,zdy,i,j:longint;
c:array[0..50,0..50] of longint;
w:array[0..50,0..50] of longint;
procedure dfs(x,y,p:longint);
begin
if (x>n) or (x<=0) then exit;
if (y>m) or (y<=0) then exit;
if p>=w[x,y] then exit;
if w[zdx,zdy]<>99999 then if p>=w[zdx,zdy] then exit;
if (c[x,y]=2) or (c[x,y]=0) then exit;
w[x,y]:=p;
if (x=zdx) and (y=zdy) then exit;
inc(p);
dfs(x+a,y+b,p);
dfs(x+a,y-b,p);
dfs(x-a,y+b,p);
dfs(x-a,y-b,p);
dfs(x+b,y+a,p);
dfs(x+b,y-a,p);
dfs(x-b,y+a,p);
dfs(x-b,y-a,p);
end;
begin
assign(input,'bronlily.in');
assign(output,'bronlily.out');
reset(input);
rewrite(output);
readln(n,m,a,b);
for i:=1 to n do
for j:=1 to m do
begin
read(c[i,j]);
if c[i,j]=3 then begin qdx:=i; qdy:=j; end;
if c[i,j]=4 then begin zdx:=i; zdy:=j; end;
end;
fillchar(w,sizeof(w),$7f);
w[zdx,zdy]:=99999;
dfs(qdx,qdy,0);
writeln(w[zdx,zdy]);
close(input);
close(output);
end.