Submission #1268672

#TimeUsernameProblemLanguageResultExecution timeMemory
1268672escobrandMobile (BOI12_mobile)C++20
0 / 100
830 ms16092 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(ld r)
{
    ld pos = 0;
    for(int i = 0;i<n&&pos<m;i++)
    {
        ll x = a[i].fi;
        ll y = a[i].se;
        if(r < y*y)continue;
        ld tmp =sqrt(r - y*y);
        if(pos < -tmp+x)return 0;
        pos = max(pos,tmp+x);
    }
    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;
    for(i = 0;i<n;i++)
    {
        cin>>a[i].fi>>a[i].se;
    }

    sort(a,a+n);

    ld l = 0,r = 2e18;
    int t = 200;
    while(t--)
    {
        ld mid = (l + r)/2;
        if(check(mid))r = mid;
        else l = mid;
    }

    cout<<sqrt(l);

    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...