#include <bits/stdc++.h>
using namespace std;
const int MAXN=100;
int N;
double D[MAXN],P[MAXN],D1,C,per,req;
int main(){
cin>>D1>>C>>per>>P[0]>>N;
D1/=per;
for(int i=1;i<=N;i++){
cin>>D[i]>>P[i];
D[i]/=per;
}
D[0]=0;
D[N+1]=D1;
P[N+1]=0;
double cur=0,ans=0;
for(int i=0;i<N;i++){
int ni=N+1;
for(int j=i+1;j<=N+1;j++){
if(P[j]<=P[i]){
ni=j;
break;
}
}
req=D[ni]-D[i];
if(req>C){
req=C;
}
if(req>cur){
ans+=(req-cur)*P[i];
cur=req;
}
cur-=D[i+1]-D[i];
if(cur<0){
break;
}
}
if(cur<0){
cout<<"No Solution"<<endl;
}
else{
cout<<fixed<<setprecision(2)<<ans<<endl;
}
return 0;
}
为什么只有50分!!!