玄关!!!求调!!!
查看原帖
玄关!!!求调!!!
991479
Hugo15253535139楼主2024/8/30 07:18
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100;
int N;
double D[MAXN],P[MAXN],D1,C,per,req;
int main(){
    cin>>D1>>C>>per>>P[0]>>N;
    D1/=per;
    for(int i=1;i<=N;i++){
        cin>>D[i]>>P[i];
        D[i]/=per;
    }
    D[0]=0;
    D[N+1]=D1;
    P[N+1]=0;
    double cur=0,ans=0;
    for(int i=0;i<N;i++){
        int ni=N+1;
        for(int j=i+1;j<=N+1;j++){
            if(P[j]<=P[i]){
                ni=j;
                break;
            }
        }
        req=D[ni]-D[i];
        if(req>C){
            req=C;
        }
        if(req>cur){
            ans+=(req-cur)*P[i];
            cur=req;
        }
        cur-=D[i+1]-D[i];
        if(cur<0){
            break;
        }
    }
    if(cur<0){
        cout<<"No Solution"<<endl;
    }
    else{
        cout<<fixed<<setprecision(2)<<ans<<endl;
    }
    return 0;
}

为什么只有50分!!!

2024/8/30 07:18
加载中...