// File A.cpp created on 20.08.2025 at 00:54:27
#include <bits/stdc++.h>
using i64 = long long;
using ld = long double;
#ifdef DEBUG
#include "/home/ahmetalp/Desktop/Workplace/debug.h"
#else
#define debug(...) void(23)
#endif
ld sq(ld x) {
return x * x;
}
i64 sq(i64 x) {
return x * x;
}
ld inter_2d(i64 x1, i64 y1, i64 x2, i64 y2) {
return ld(sq(x1) + sq(y1) - sq(x2) - sq(y2)) / (2 * (x1 - x2));
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout << std::fixed << std::setprecision(9);
int N, M;
std::cin >> N >> M;
std::vector<std::array<i64, 2>> A(N);
for (int i = 0; i < N; ++i) {
std::cin >> A[i][0] >> A[i][1];
}
auto inter = [&](auto lhs, auto rhs) -> ld {
return inter_2d(A[lhs][0], A[lhs][1], A[rhs][0], A[rhs][1]);
};
std::deque<int> stk;
for (int i = 0; i < N; ++i) {
while (stk.size() > 1 && inter(stk.end()[-2], stk.back()) > inter(stk.back(), i)) {
stk.pop_back();
}
stk.emplace_back(i);
}
while (stk.size() > 1 && inter(stk[0], stk[1]) < 0) {
stk.pop_front();
}
while (stk.size() > 1 && inter(stk.end()[-2], stk.back()) > M) {
stk.pop_back();
}
ld res = 0;
for (int i = 0; i < stk.size(); ++i) {
ld l = (i == 0 ? 0 : inter(stk[i - 1], stk[i]));
ld r = (i + 1 == stk.size() ? M : inter(stk[i], stk[i + 1]));
res = std::max(res, std::sqrt(sq(A[stk[i]][1]) + sq(A[stk[i]][0] - l)));
res = std::max(res, std::sqrt(sq(A[stk[i]][1]) + sq(A[stk[i]][0] - r)));
}
std::cout << res << '\n';
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... |