记录编号 |
49532 |
评测结果 |
AAAAAAAAAA |
题目名称 |
造房子的学问 |
最终得分 |
100 |
用户昵称 |
Vow Ryan |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.025 s |
提交时间 |
2012-11-08 14:15:23 |
内存使用 |
5.51 MiB |
显示代码纯文本
var
i,j,k,l,r,m,n,a,b,c,d,len,time:longint;
vis:array[0..400000]of longint;
q:array[0..1000010]of longint;
procedure add(x,time:longint);
begin
if x>32767 then exit;
if vis[x]<=time then exit;
vis[x]:=time;
inc(r);
if r>1000000 then r:=1;
q[r]:=x;
end;
begin
assign(input,'wood.in');reset(input);
assign(output,'wood.out');rewrite(output);
read(n,m,a,b,c,d);
fillchar(vis,sizeof(vis),1);
r:=1;
q[r]:=n;
vis[n]:=0;
while l<>r do
begin
inc(l);
len:=q[l];
time:=vis[len];
add(len+a,time+1);
add(len+b,time+1);
add(len+c,time+1);
if len>d then add(len-d,time+1);
if len div 2<>0 then add(len div 2,time+1);
if (len<>n)and(d=0) then add(d,time+1);
end;
if vis[m]<1234567 then writeln(vis[m]) else writeln('No solution.');
close(output);
end.