wangcr 2016-11-18 06:17:56
点我顶贴
收藏
删除
为什么只有80分???
源程序:
var n,x,y,i,t:longint;
a,f:array[0..400]of longint;
procedure try(k:longint);
var i:longint;
f1:array[1..200]of boolean;
begin
if k=y then
begin
writeln(t);
halt;
end;
if t>2000 then
begin
writeln('-1');
halt;
end;
fillchar(f1,sizeof(f1),0);
for i:=1 to t do if f[i]=k then begin writeln('-1');halt;end;
inc(t);f[t]:=k;
if k+a[k]<=n then try(k+a[k]);
if k-a[k]>=1 then try(k-a[k]);
end;
begin
readln(n,x,y);
for i:=1 to n do read(a[i]);
t:=0;
try(x);
end.