ac1256.pas

来自「这是在网络上搜集到的在东京大学的ACM上面解决的一些题目的源码」· PAS 代码 · 共 28 行

PAS
28
字号
program tju1256;
const
  maxn=200;
var
  k,q,step:array[1..maxn]of byte;
  n,b,i,f,r:longint;
begin
  repeat
    read(n,q[1],b);
    for i:=1 to n do read(k[i]);

    fillchar(step,sizeof(step),255);step[q[1]]:=0;
    f:=0;r:=1;
    repeat
      inc(f);
      i:=q[f]+k[q[f]];
      if (i<=n) and (step[i]=255) then begin
        step[i]:=step[q[f]]+1;if i=b then break;inc(r);q[r]:=i;
      end;
      i:=q[f]-k[q[f]];
      if (i>0) and (step[i]=255) then begin
        step[i]:=step[q[f]]+1;if i=b then break;inc(r);q[r]:=i;
      end;
    until f=r;
    if step[b]<255 then writeln(step[b]) else writeln(-1);
  until seekeof;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?