k++;//找距离i最近的比i油价低的站,驶向k站,到k站邮箱清空
pricemin+=((sta[k].length-sta[i].length)/davg-oil)*sta[i].price;
pri(k,0);
}
else
{//未找到
if(sta[i].length+lengthcmax>=sta[n].length)//如果距离终点在一箱油距离之内,直接驶向终点
pricemin+=((sta[n].length-sta[i].length)/davg-oil)*sta[i].price;
else
{
j=findmin(i);//找离i站距离在一箱油之内油价最低的站,加满油,驶向j站
pricemin+=(cmax-oil)*sta[i].price;
pri(j,cmax-(sta[j].length-sta[i].length)/davg);
}
}
}
int main()
{
int i;
scanf("%lf %lf %lf %d",&cmax,&length,&davg,&n);
lengthcmax=cmax*davg;
for(i=0;i
scanf("%lf %lf",&sta[i].price,&sta[i].length);
qsort(sta,n,sizeof(sta[0]),cmp);
sta[n].length=length;
sta[n].price=INT_MAX;
for(i=0;i
if(sta[i].length+lengthcmax
break;
if(i
{
if(sta[0].length==0)
printf("The maximum travel distance = %.2lf\n",sta[i].length+lengthcmax);
else
printf("The maximum travel distance = 0.00\n");
}
else
{
pricemin=0;
pri(0,0);
printf("%.2lf\n",pricemin);
}
return 0;
}