| 记录编号 | 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.