大神们帮调一下
这道题用了一个“反悔”思路但没对
#include<bits/stdc++.h>
using namespace std;
double d1,c,d2,p,n;
double sum=0,res=0,sl=0;
struct AA{
double di,pi;
}a[10];
int main()
{
cin>>d1>>c>>d2>>p>>n;
for(int i=1;i<=n;i++){
cin>>a[i].di>>a[i].pi;
}
sum=a[1].di/d2*p;
res=a[1].di/d2;
int o=0;
a[0].pi=p;
a[0].di=0;
for(int i=1;i<=n;i++){
res-=(a[i].di-a[o].di)/d2;
if(a[i].pi<a[o].pi)
o=i;
sum+=(a[i+1].di-a[i].di)/d2*a[o].pi;
res+=(a[i+1].di-a[i].di)/d2;
sl+=a[i].di-a[i-1].di;
if(sl>=d1){
cout<<sum;
return 0;
}
if(res>c){
cout<<"No Solution";
return 0;
}
cout<<sum<<" "<<res<<" "<<sl<<endl;
}
cout<<"No Solution";
return 0;
}