| 记录编号 | 
        20980 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        486.漂亮字串 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         donny | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        Pascal | 
        运行时间 | 
        0.023 s  | 
    
    
        | 提交时间 | 
        2010-11-02 09:08:21 | 
        内存使用 | 
        0.11 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		program bs;
var
  i,j,k,l:longint;
  x,xx,o,oo:longint;
  s,ss,m,mm:longint;
function suan(x,y:longint):longint;
var
  i:longint;
begin
  i:=x mod y;
  if i=0 then exit(x div y)
  else exit((x div y)+1);
end;
function min(x,y:longint):longint;
begin
  if x>y then exit(y)
  else exit(x);
end;
procedure find;
var
  i,j,k:longint;
begin
  if ((ss<=m)and(s>=m))or((ss<=mm)and(s>=m))or((mm>=ss)and(m<=s))or((mm<=s)and(m>=s)) then
    writeln(x+o)
    else
    begin
      if ss>m then
      begin
        writeln(o+min(x,(m+1)*xx));
      end
      else
      begin
        writeln(x+min((s+1)*oo,o));
      end;
    end;
end;
begin
  assign(input,'bs.in');
  reset(input);
  assign(output,'bs.out');
  rewrite(output);
  while not eof do
  begin
    readln(x,o,xx,oo);
    if x=0 then
    begin
      writeln(min(o,oo));
    end
    else
    if o=0 then
    begin
      writeln(min(x,xx));
    end
    else
    if xx=0 then
    begin
      writeln(min(o,oo));
    end
    else
    if oo=0 then
    begin
      writeln(min(x,xx));
    end
    else
    begin
    s:=x;
    ss:=suan(x,xx);
    m:=o;
    mm:=suan(o,oo);
    find;
    end;
  end;
  close(input);
  close(output);
end.