#include <bits/stdc++.h>
using namespace std;
long double intersect(pair<long double, long double> a, pair<long double, long double> b){
return (((b.first*b.first) + (b.second*b.second)) - ((a.first*a.first)+(a.second*a.second)))/(2.0*(b.first-a.first));
}
long double dist(pair<long double, long double> p, long double x){
long double dx = p.first - x;
return (dx*dx) + (p.second*p.second);
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
long double l;
cin >> n >> l;
vector<pair<long double,long double>> arr(n);
for (int i = 0; i<n; i++){
cin >> arr[i].first >> arr[i].second;
}
sort(arr.begin(), arr.end());
vector<pair<long double, long double>> s;
for (int i = 0; i<n; i++){
while (s.size() >= 2){
//do stuff
long double cr = intersect(s.back(), arr[i]);
long double prv = intersect(s[s.size()-2], s.back());
if (cr <= prv) s.pop_back();
else break;
}
s.push_back(arr[i]);
}
long double ans = 0;
ans = max(ans, dist(s[0],0));
for (int i = 0; i<s.size()-1; i++){
long double x = intersect(s[i], s[i+1]);
if (x >= 0 && x <= l){
ans = max(ans, dist(s[i], x));
}
}
ans = max(ans, dist(s.back(), l));
cout << sqrt(ans);
return 0;
}
| # | 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... |