100TM还WA了(第5测试点)
查看原帖
100TM还WA了(第5测试点)
1714194
Wangyinuo666楼主2025/6/3 22:13
#include<bits/stdc++.h>
using namespace std;
double d1,c,d2,p,price,pmin=1000,l;
int n,ii=0;
double d[10],pi[10],x;
int main(){
    cin>>d1>>c>>d2>>p>>n;
    d[0]=0;
    pi[0]=p;
    for(int i=1;i<=n;i++){
        cin>>d[i]>>pi[i];
    }
    x=c*d2;
    for(int i=1;i<=n;i++){
        if(d[i]-d[i-1]>x){
            cout<<"No Solution";
            return 0;
        }
    }
    double d0=0;
    while(d1-d0){
        for(int i=ii+1;d[i]-d0<=x&&i<=n;i++){
            if(pi[i]<pmin){
                pmin=pi[i];
                ii=i;
            }
        }
        if(pmin<=p){
            price+=((d[ii]-d0)/d2-l)*p;
            l=(d[ii]-d0)/d2;
        }else if(d1-d0>x){
            price+=(c-l)*p;
            l=c;
        }else{
            price+=((d1-d0)/d2-l)*p;
            break;
        }
        l=l-(d[ii]-d0)/d2;
        d0=d[ii];
        p=pmin;
        pmin=1000;
    }
    printf("%.2lf",price);
    return 0;
}
2025/6/3 22:13
加载中...