//Problem : Noi;
//Author : CaiXinXiao;
//Way : Search;
Program Tour;
ConsT
MaxN = 100;
Inf = 'tour.in';
Ouf = 'tour.out';
VaR
Value : Array[1..MaxN] of Real;
Data : Array[1..MaxN] of Real;
F : Array[1..MaxN] of Real;
yx,yh : Real;
chufa : Real;
M : Longint;
n : Longint;
Function Pd(x:Real):Boolean;
Begin
Pd:=False;
if x<=yx then Pd:=True
Else
Pd:=False;
End;
Procedure Init;
Begin
assign(input,Inf); reset(input);
assign(output,Ouf); rewrite(output);
FillChar(Value,sizeof(Value),0);
Readln(n);
Readln(yx,yh,chufa,m);
End;
Procedure Main;
Var
i,r,j,k:Longint;
Sum:Real;
Begin
Sum:=10e38;
For i:=1 to n do
For k:=1 to k do
Begin
if Pd(Value[i]-Value[k])=true then
if Sum<((F[k]+(Value[i]-Value[k])/yh)*Data[i])+20 then
Sum:=((F[k]+(Value[i]-Value[k])/yh)*Data[i])+2;
End;
End;
Procedure Print;
Begin
close(input);
close(output);
End;
BEGIN
Init;
Main;
Print;
END.