#include<bits/stdc++.h>
using namespace std;
#define re register
double d1,c,d2,p,ans,maxn,minx,cnt;
int n,k,minn;
struct node{
double d,p;
}t[10];
bool cmp(node x,node y){
return x.d<y.d;
}
int main(){
scanf("%lf%lf%lf%lf%d",&d1,&c,&d2,&t[0].p,&n);
t[n+1].d=d1;t[0].d=0;
d1=c*d2;
for(re int i=1;i<=n;++i){
scanf("%lf%lf",&t[i].d,&t[i].p);
}
sort(t+1,t+1+n,cmp);
while(k!=n){
int f=0;minn=0x3f3f3f3f;
for(re int i=k+1;i<=n;++i){
if(t[k].d+d1>=t[i].d){
if(t[k].p>t[i].p){
f=1;
ans+=((t[i].d-t[k].d-cnt)/d2)*t[k].p;
cnt=0;
k=i;
break;
}
else{
if(minn==0x3f3f3f3f||t[minn].p>t[i].p){
minn=i;
}
}
}
else break;
}
if(f!=1){
if(t[k].d>=t[n+1].d-d1){
ans+=(t[n+1].d-t[k].d-cnt)/d2*t[k].p;
printf("%.2f",ans);
return 0;
}
if(minn==0x3f3f3f3f){
printf("No Sulution");
return 0;
}
else{
ans+=c*t[k].p;cnt+=d1-t[minn].d+t[k].d;
}
}
}
printf("%.2lf",ans);
return 0;
}