#include<bits/stdc++.h>
using namespace std;
priority_queue<double,vector<double> > q;
struct oil{
double d;
double p;
}a[10];
bool cmp(oil x,oil y) {
return x.d < y.d;
}
int main() {
double d1,c,d2,p;
int n;
cin >> d1 >> c >> d2 >> p >> n;
if (d2 == 0) {
cout << "No Solution";
return 0;
}
for (int i=1;i<=n;i++) {
cin >> a[i].d >> a[i].p;
}
sort(a+1,a+n+1,cmp);
double ans = 0.0;
double you = 0.0;
a[n+1].d = d1;
ans += p*c;
you = c;
you -= a[1].d/d2;
q.push(p);
for (int i=1;i<=n;i++) {
if (q.size() && q.top() > a[i].p) {
ans -= you*q.top();
you = 0;
q.pop();
}
ans += (c-you)*a[i].p;
you = c;
you -= (a[i+1].d-a[i].d)/d2;
q.push(a[i].p);
}
ans -= you*q.top();
printf("%.2lf",ans);
}