讨论 / 想不通啊 哪里超时了?
roy12 2008-08-03 00:23:00
点我顶贴 收藏 删除
var a:array[1..201]of longint;

i,j,k,ans,n:longint;

c:char;

s:string;

begin

readln(n);

a[n]:=-1;

for i:=1 to n do

begin

s:=’’;

repeat

read(c);

if c<>’ ’ then s:=s+c;

until c=’ ’;

if s=’jmp’ then

begin

readln(j);

a[i]:=j;

end else

begin

readln(s);

if i<n then a[i]:=i+1;

end;

end;

if a[n]>-1 then

begin

writeln(’0’);

exit;

end;

ans:=0;

i:=1;

repeat

inc(ans);

if i=n then break;

i:=a[i];

until (i>n)or(ans>202);

if ans>202 then writeln(’0’) else writeln(ans);

end.

#1 wish@2008-08-03 00:23:00
回复 删除
until(i>n)or(ans>202);

这个 i>n 多余

另外你把 string 改成 ansistring 试下 -_-

你的方法私以为有那么一点点投机取巧~,ans>200 就退。。。

不过应该没问题

查看更多回复
提交回复