25pts,样例还没过,蒟蒻一个
查看原帖
25pts,样例还没过,蒟蒻一个
1075989
BlauAnthony楼主2024/12/21 21:57

code:

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
	double d1,c,d2,p;
	int n;
	cin>>d1>>c>>d2>>p>>n;
	pair<double,double> l[n+1];
	l[0].first=0;
	l[0].second=p;
	for(int i=1;i<=n;i++)cin>>l[i].first>>l[i].second;
	double all=0,now=0;
	if(now>c){
		cout<<"No Solution";
		return 0;
	}
	int zd=0;
	for(int i=0;i<n;i++){
		if(l[i]>l[zd]||now+(l[i+1].first-l[i].first)/d2>c){
			all+=now*l[zd].second;
			now=(l[i+1].first-l[i].first)/d2;
            if(now>c){
                cout<<"No Solution";
		        return 0;
            }
            zd=i;
		}else{
            now+=(l[i+1].first-l[i].first)/d2;
        }
	}
    if(l[n]>l[zd]||now+(d1-l[n].first)/d2>c){
		all+=now*l[zd].second;
		now=(d1-l[n].first)/d2;
        if(now>c){
            cout<<"No Solution";
            return 0;
        }
		all+=now*l[n].second;
	}else{
        now+=(d1-l[n].first)/d2;
        all+=now*l[zd].second;
    }
	cout<<all<<endl;
	return 0;
}
2024/12/21 21:57
加载中...