{
  Persikėlimas per kanalą

  Funkcijos minimumo paieška su išvestinės pagalba.
  O(1) Omega(1) Theta(1)
}

program persik2;
var
  N, D, U, V: longint; { Pradiniai duomenys }
  R: longint;          { Rezultatas }
  sqrD: longint;       { Tarpinė reiksmė: sqr(D) }
  
{ Duomenų įvedimas }
procedure ivesti_duom;
var
  f: text;
begin
  assign(f, 'kanalas.dat');
  reset(f);
  readln(f, N, D, U, V);
  close(f);
end;

{ Randa minimumą patikrinant reikšmes, artimas realiam f-os minimumui }
procedure rasti_min;
  { Laikas, kurį keliaus valtininkas (prieplaukos numeruojamos 0..N-1) }
  function t(x: longint): double;
  begin
    t := sqrt( sqr(1.0 * x) * 1e+6 + sqrD ) / U + (N - 1 - x) * 1.0e+3 / V;
  end;
  { F-os t(x) minimumas }
  function min: longint;
  begin
    min := trunc(D * U / sqrt(sqr(V) - sqr(U)) / 1e3);
  end;
  
begin
  sqrD := sqr(D);
  if V <= U then
    R := N      { Plaukiame iš karto į paskutinę prieplauką }
  else
  begin
    R := min;
    if R <= 0 then
      R := 0;    { Čia bus geriausias laikas }
    if t(R + 1) < t(R) then
      Inc(R);
    Inc(R);
  end;
  if R >= N then { Neišlendam už ribų }
    R := N;
end;

{ Išvedamas rezultatas - prieplaukos numeris R }
procedure isvesti_rez;
begin
  writeln(R);
end;

begin
  ivesti_duom;
  rasti_min;
  isvesti_rez;
end.

