求求了看看吧第5测试点错了
#include<bits/stdc++.h>
using namespace std;
struct pp{
double d,p;
}a[10];
double km,c,kml,m,ans;
int n;
bool cmp(pp qqq,pp www){
return qqq.d<www.d;
}
int main(){
cin>>km>>c>>kml>>m>>n;
a[0].d=0;
a[0].p=m;
a[n+1].d=km;
a[n+1].p=0;
for(int i=1;i<=n;i++){
cin>>a[i].d>>a[i].p;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n+1;i++){
if(a[i].d-a[i-1].d>c*1.0*kml){
cout<<"No Solution";
return 0;
}
}
int sum=0;
double sum1=m,sum2=0;
for(int i=1;i<=n+1;i++){
if(a[i+1].d-sum2>c*1.0*kml){
ans+=a[sum].p*1.0*((a[i].d-sum2)/kml);
sum=i;
sum1=a[i].p;
sum2=a[i].d;
continue;
}
if(a[i].p<=sum1){
ans+=a[sum].p*1.0*((a[i].d-sum2)/kml);
sum=i;
sum1=a[i].p;
sum2=a[i].d;
}
}
printf("%.2lf",ans);
return 0;
}