제출 #1349847

#제출 시각아이디문제언어결과실행 시간메모리
1349847NewtonabcMobile (BOI12_mobile)C++20
0 / 100
673 ms16960 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<pair<double,double>> p;
ll L;
bool cal(double d){
    double nlen=0;
    for(auto [x,y]:p){
        if(d<=abs(y)) continue;
        double k=sqrt(d*d-y*y);
        if(x-k<=nlen) nlen=x+k;
    }
    return nlen>=(double)L;
}
int main(){
    int n;
    cin>>n >>L;
    for(int i=0;i<n;i++){
        ll x,y; cin>>x >>y;
        p.push_back({x,y});
    }
    double l=0,r=3e9;
    for(int i=0;i<100;i++){
        double mid=(l+r)/2;
        if(cal(mid)) r=mid;
        else l=mid;
    }
    cout<<fixed <<setprecision(8) <<l;
}
#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...