讨论 / 紧急营救!!!!!!!
习新果 2013-02-17 18:40:00
点我顶贴 收藏 删除
为什么老是输出4?

求大婶指点!

program xxg;

var

n,i,j,k,t,w,zx,zy,p,mix:longint;

s:ansistring;

l:array[0..1005,0..1005]of integer;

a,x,y:array[0..1000005]of longint;

procedure xxg(f:longint);

begin

if (f=1)and(l[x[t]-1,y[t]]=0) then

begin inc(w);x[w]:=x[t]-1;y[w]:=y[t];a[w]:=a[t]+1;exit; end;

if (f=2)and(l[x[t]+1,y[t]]=0) then

begin inc(w);x[w]:=x[t]+1;y[w]:=y[t];a[w]:=a[t]+1;exit; end;

if (f=3)and(l[x[t],y[t]-1]=0) then

begin inc(w);x[w]:=x[t];y[w]:=y[t]-1;a[w]:=a[t]+1;exit; end;

if (f=4)and(l[x[t],y[t]+1]=0) then

begin inc(w);x[w]:=x[t];y[w]:=y[t]+1;a[w]:=a[t]+1;exit; end;

end;

begin

readln(n);

fillchar(a,sizeof(a),0);

fillchar(y,sizeof(l),0);

for i:=1 to n do

begin

readln(s);

for j:=1 to n do

l[i,j]:=ord(s[j])-48;

l[0,i]:=1;l[n+1,i]:=1;l[i,0]:=1;l[i,n+1]:=1;

end;

readln(x[1],y[1]);

readln(zx,zy);

t:=0;w:=1;

repeat

inc(t);

if (x[t]=zx)and(y[t]=zy) then begin writeln(a[t]); exit; end;

l[x[t],y[t]]:=1;

for i:=1 to 4 do xxg(i);

until t>=w;

end.

#1 huangxin@2013-02-17 18:40:00
回复 删除
我也老实输出一个答案

目测是测评器出问题了

查看更多回复
提交回复