1 条题解

  • 0
    @ 2024-7-27 15:09:55
    #include<bits/stdc++.h> 
    #define ll long long
    using namespace std;
    double k,a[10000005];
    int n;
    bool cheak(double x){
    	double d=a[1]+x;
    	for(int i=2;i<=n;i++){
    		if(d+k<a[i]-x){
    			return 0;
    		}	
    		else{
    			d+=k;
    			if(d>a[i]+x){
    				d=a[i]+x;
    			}
    		}
    	}
    	return 1;
    }
    int  main(){
    	cin>>k>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	double l=0,r=1e9+10;
    	while(r-l>=1e-5){
    		double mid=(l+r)/2;
    		if(cheak(mid)){
    			r=mid;
    		}
    		else{
    			l=mid;
    		}
    	}
    	cout<<fixed<<setprecision(3)<<r;
    	return 0;
    }
    
    • 1

    信息

    ID
    3009
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    80
    已通过
    26
    上传者