rt 求助,不知道错哪了
#include <bits/stdc++.h>
using namespace std;
struct node{
double a, dis;
}e[7];
bool cmp(node a, node b){
return a.dis<b.dis;
}
int main(){
int n;
double dist, vol, voldist, sum=0, ans=0;
cin >> dist >> vol >> voldist >> e[0].a >> n;
e[0].dis=0;
for (int i=1; i<=n; i++){
cin >> e[i].dis >> e[i].a;
if(e[i].dis-e[i-1].dis>vol*voldist){
cout << "No Solution";
return 0;
}
}
sort(e+1, e+n+1, cmp);
for (int i=0; i<n; i++){
for (int j=i+1; j<=n; j++){
if (e[j].dis-e[i].dis<vol*voldist){
if (e[j].a<e[i].a||i==n-1){
if (ans>=(e[j].dis-e[i].dis)/voldist){
ans-=(e[j].dis-e[i].dis)/voldist;
}else{
sum+=((e[j].dis-e[i].dis)/voldist-ans)*e[i].a;
ans=0;
}
}
}else{
sum+=e[i].a*(vol-ans);
ans=vol;
ans-=(e[i+1].dis-e[i].dis)/voldist;
}
}
}
printf("%.02lf", sum);
return 0;
}