Submission #1316932

#TimeUsernameProblemLanguageResultExecution timeMemory
1316932yashb5789Mobile (BOI12_mobile)C++17
100 / 100
408 ms16988 KiB
#include <bits/stdc++.h>
using namespace std;


int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    
    int n;
    double l;
    cin>>n>>l;
    vector<pair<double, double> > points;
    double l_copy=0;
    double r_copy=2*l;
    for(int i=0; i<n; i++){
        double a;
        double b;
        cin>>a>>b;
        points.push_back({a,b});
    }

    double out=r_copy;
    while(l_copy<=r_copy-(1e-5)){
        double mid=l_copy+(r_copy-l_copy)/2;

        double last_covered=0;
        for(int i=0; i<n; i++){
            if(abs(points[i].second)<=mid){
                double horizontal=sqrt(pow(mid,2)-pow(points[i].second, 2));
                double l_curr=points[i].first-horizontal;
                double r_curr=points[i].first+horizontal;

                if(r_curr>=last_covered){
                    if(l_curr<=last_covered){
                        last_covered=r_curr;
                    }
                }
            }
        }

        if(last_covered>=l){
            out=min(out, mid);
            r_copy=mid-(1e-5);
        }else{
            l_copy=mid+(1e-5);
        }
    }

    cout<<fixed<<setprecision(5)<<out<<"\n";

    

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...