记录编号 49532 评测结果 AAAAAAAAAA
题目名称 造房子的学问 最终得分 100
用户昵称 GravatarVow 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.