Submission #1269928

#TimeUsernameProblemLanguageResultExecution timeMemory
1269928nabeul001Mobile (BOI12_mobile)C++20
0 / 100
309 ms31560 KiB
//Indeed Hardship comes with ease [94:6]
//Man will not get anything unless he works hard  [53:39]
//ᴇᴀᴄʜ ᴘᴇʀꜱᴏɴ ᴡɪʟʟ ᴏɴʟʏ ʜᴀᴠᴇ ᴡʜᴀᴛ ᴛʜᴇʏ ᴇɴᴅᴇᴀᴠᴏᴜʀᴇᴅ ᴛᴏᴡᴀʀᴅꜱ [53:39]
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
bool  comp(const pair<ld,ld>&a,const pair<ld,ld>&b)
{
    return a.first < b.first;
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cout << fixed << setprecision(6);
    ll n,l;
    cin >> n >> l;
    vector<pair<ld,ld>> a(n);
    for(int i = 0; i < n; i++)
    {
        cin >> a[i].first >> a[i].second;
    }
    sort(a.begin(), a.end(), comp);
    auto ok = [&](ld c)
    {
        pair<ld,ld> x = {c,0.0};
        auto it = lower_bound(all(a),x,comp);
        if(it==a.begin())
        {
            return false;
        }
        else if(it==a.end())
        {
            return true;
        }
        else
        {
            auto [rx, ry] = *it;
            auto [lx, ly] = *(prev(it));
            ld ldist = hypot(lx - c, ly);
            ld rdist = hypot(rx - c, ry);
            return rdist >= ldist;
        }


    };
    ld low = 0.0; 
    ld high = l;
    ld diff= 1e-7;

    while(high-low>diff)
    {
        ld  mid = (low+high)/2.0;
        if(ok(mid))
        {
            low=mid;
        }
        else
        {
            high=mid;
        }
    }

    cout << high << "\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...