#include using namespace std; double maxx,mo=0,d2,temlen=0,d1,c,p; //temlen:油箱中在到达了下一个加油站时油箱中的剩余油量可以继续走的路程 int n; struct add { double co; double dis; }pl[10000];//加油站结构体:dis-距离起点的距离,co:油价 int move(int now)//1.now:现在到达的加油站 { int can=99999; int f=pl[now].dis; for(int i=now+1;i<=n&&pl[i].dis-f<=maxx;i++) { if(pl[i].co>d1>>c>>d2>>p>>n; pl[0].dis=0; pl[0].co=p; for(int i=1;i<=n;i++)cin>>pl[i].dis>>pl[i].co; sort(pl,pl+n,cmp); maxx=c*d2; int k=0,t; do { t=move(k); k=t; if(t==-1)return 0; }while(t!=9999); printf("%.2f",mo); return 0; }