#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
using lb = long double;
bool check(vector<pair<lb, lb>> &l1, lb &a, lb &n, lb &l){
vector<pair<lb, lb>> segments;
for (auto &p : l1){
if (a >= fabsl(0.0L - p.second)){
lb x = sqrt((a * a) - (fabsl(0.0L - p.second) * fabsl(0.0L - p.second)));
segments.push_back({p.first - x, p.first + x});
}
}
sort(segments.begin(), segments.end());
lb low = -1e18;
lb high = -1e18;
for (int i = 0; i < (int)segments.size(); i++){
if (i == 0){
low = segments[i].first;
high = segments[i].second;
continue;
} else {
if (segments[i].first > high){
return false;
} else {
high = max(segments[i].second, high);
}
}
}
if (low <= 0 && high >= l){
return true;
} else {
return false;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
lb n, l;
cin >> n >> l;
vector<pair<lb, lb>> l1;
for (int i = 0; i < (int)n; i++){
lb a, b;
cin >> a >> b;
l1.push_back({a, b});
}
lb low = 0;
lb high = 1e18;
for (int i = 0; i < 80; i++){
lb mid_point = (low + high) / 2;
if (check(l1, mid_point, n, l)){
high = mid_point;
} else {
low = mid_point;
}
}
cout << fixed << setprecision(10) << high;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |