Submission #513219

#TimeUsernameProblemLanguageResultExecution timeMemory
513219riverwalk3Mobile (BOI12_mobile)C++14
0 / 100
1054 ms31568 KiB
#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
#define MAXN 1000100
using namespace std;
struct Beacon
{
    double x, y;
    Beacon()
    {
        x = y = 0;
    }
};
int N; double L;
Beacon b[MAXN];
bool judge(double R)
{
    double left_most_gap = 0;
    double l, r;
    for(int i=0; i<N; i++)
    {
        if(b[i].y > R)
        {
            continue;
        }
        else
        {
            l = b[i].x - sqrt(R*R-b[i].y*b[i].y);
            r = b[i].x + sqrt(R*R+b[i].y*b[i].y);
            if(l <= left_most_gap)
            {
                left_most_gap = max(left_most_gap, r);
            }
        }
    }
    if(left_most_gap >= L)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
    cin>>N>>L;
    for(int i=0; i<N; i++)
    {
        cin>>b[i].x>>b[i].y;
    }
    double lbound = 0; double hbound = L * 1.5; double avg;
    while(hbound - lbound > 1e-3)
    {
        avg = (lbound + hbound)/2;
        if(judge(avg))
        {
            hbound = avg;
        }
        else
        {
            lbound = avg;
        }
    }
    cout<<fixed<<setprecision(3)<<avg<<endl;
}
#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...