rt
#include <bits/stdc++.h>
#define ld long double
using namespace std;
struct oil{
ld d,p;
}a[25];
bool compare(oil x,oil y){
return x.d < y.d;
}
signed main(int argc, char const *argv[])
{
ld d1,c,d2,ans = 0;
int n,last = 0;
cin >> d1 >> c >> d2 >> a[0].p >> n;
for(int i = 1;i <= n;++i){
cin >> a[i].d >> a[i].p;
}
a[n + 1].d = d1;
stable_sort(a,a + n + 1,compare);
int ct;
for(int i = 1;i <= n;++i){
if(a[i].d - a[i - 1].d > c * d2){
cout << "No Solution" << endl;
return 0;
}
}
for(int i = 0;i <= n;i = ct){
int k;
for(ct = k = i + 1;ct <= n + 1;++ct){
k = a[ct].p <= a[k].p?ct:k;
if(a[ct + 1].d - a[i].d > c*d2){
break;
}
if(a[ct].p < a[i].p){
break;
}
}
if(a[ct].p < a[i].p){
ans += ((a[ct].d - a[i].d) / d2 - last) * a[i].p;
last = 0;
}
else{
ans += (c - last) * a[i].p;
last = k;
}
}
cout << fixed << setprecision(2) << ans;
return 0;
}