#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
struct lwt
{
double d;//lu
double p;//qian
}a[11];
bool cmp(lwt a,lwt b)
{
return a.p<b.p;
}
double d1,c,d2,p,now,lastmon,maxn,mon;
int n;
bool flag;
int main()
{
scanf("%lf%lf%lf%lf",&d1,&c,&d2,&p);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf%lf",&a[i].d,&a[i].p);
maxn=c*d2;
for(int i=1;i<=n;i++)
{
if(a[i].d-a[i-1].d>maxn)
{
printf("No Solution");
return 0;
}
}
sort(a+1,a+n+1,cmp);
now=0;
lastmon=p;
while(1)
{
flag=true;
for(int i=1;i<=n;i++)
{
if((a[i].d-now)<=maxn&&(a[i].d-now)>0)
{
flag=false;
if(a[i].d<=d1)
{
mon=mon+(a[i].d-now)/d2*lastmon;
now=a[i].d;
lastmon=a[i].p;
}
else
{
mon=mon+(a[i].d-d1)/d2*lastmon;
now=d1;
lastmon=a[i].d;
}
}
if(now+maxn>=d1)
{
mon+=(d1-now)/d2*lastmon;
now=d1;
}
if(now>=d1)
{
printf("%.2lf",mon);
return 0;
}
}
if(flag==true&&now<d1)
{
mon+=(d1-now)/d2*lastmon;
now=d1;
}
if(now>=d1)
{
printf("%.2lf",mon);
return 0;
}
}
return 0;
}