Submission #1314345

#TimeUsernameProblemLanguageResultExecution timeMemory
1314345ashikur_Mobile (BOI12_mobile)C++20
100 / 100
497 ms16020 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
 
#define inf (ll)1e15
#define ll long long
#define lll __int128_t
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define vd vector<double>
#define mod 1000000007
// #define mod 998244353
#define pie acos(-1.0)
#define LSOne(i) ((i) & -(i))
#define EPS 1e-9

struct point{
    double x, y;
};

bool feasible(vector<point> &vtr, double r, double m){
    double cover = 0;
    for(auto [x, y] : vtr){
        double lo_x = x - sqrt(r*r - y*y);
        double hi_x = x + sqrt(r*r - y*y);
        if(lo_x <= cover) cover = max(cover, hi_x);
    }
    return cover >= m;
}

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

    ll n, m; cin >> n >> m;
    vector<point> vtr(n);
    for(ll i = 0; i < n; i++) cin >> vtr[i].x >> vtr[i].y;

    double lo = 0, hi = m;
    while(hi - lo > 1e-3){
        double mid((lo+hi)/2);
        feasible(vtr, mid, m) ? hi = mid : lo = mid;
    }
    cout << fixed << setprecision(5) << (hi+lo)/2 << "\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...