P1016用此代码过不了第5个点QAQ
想破脑袋想不出QAQ~~~
#include<iostream>
using namespace std;
double D,d[10],c,p[10],mi,all,t;int n,Mi;bool g;
bool see(int now){
int i=now+1;mi=p[i];g=true;Mi=i;
if(t*c<(d[i]-d[now])) return false;
for(;t*c>=(d[i]-d[now])&&g&&i!=n+2;i++){
if(p[i]<=p[now]){
g=false;
Mi=i;
}
if(p[i]<=mi)Mi=i;
}
all+=(d[Mi]-d[now])/t*p[now];
if(Mi==n+1)return true;
return see(Mi);
}
int main(){
cin>>D>>c>>t>>p[0]>>n;d[n+1]=D;
for(int i=1;i<=n;i++){
cin>>d[i]>>p[i];
}
if(see(0))printf("%.2lf",all);
else cout<<"No Solution";
return 0;
}