Submission #1268664

#TimeUsernameProblemLanguageResultExecution timeMemory
1268664escobrandMobile (BOI12_mobile)C++20
0 / 100
224 ms16088 KiB
#include <bits/stdc++.h>

using namespace std;
#define all(v) v.begin(),v.end()
#define pb push_back
#define ll long long
#define ld long double
#define fi first
#define se second
#define mk make_pair
typedef pair<ll,ll> pii;

int i,n,t;
const int maxn = 1e6 + 10;
pii a[maxn];
ll m;

bool check(ll r)
{
    ll pos = 0;
    for(int i = 0;i<n&&pos<m;i++)
    {
        ll x = a[i].fi;
        ll y = a[i].se;
        ll tmp = sqrt(r - y*y);
        if(pos < x-tmp)return 0;
        pos = max(pos,x+tmp);
    }
    return pos >= m;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    // freopen("a.INP","r",stdin);
    // freopen("a.OUT","w",stdout);

    cin>>n>>m;
    m *= 1e3;
    for(i = 0;i<n;i++)
    {
        cin>>a[i].fi>>a[i].se;
        a[i].fi *= 1e3;
        a[i].se *= 1e3;
    }

    sort(a,a+n);

    ll l = 0,r = 1e18;
    while(l<r)
    {
        ll mid = (l + r)/2;
        if(check(mid))r = mid;
        else l = mid + 1;
    }

    cout<<sqrt((ld)l / 1e6);

    return 0;
}
#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...