This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std; using ii = pair<int,int>; using ll = long long; using vi = vector<int>;
#define rep(i,a,b) for (auto i = (a); i <= (b); ++i)
#define per(i,a,b) for (auto i = (b); i >= (a); --i)
#define all(x) begin(x), end(x)
#define siz(x) int((x).size())
#define Mup(x,y) (x = max(x,y))
#define mup(x,y) (x = min(x,y))
#define fi first
#define se second
#define pb push_back
#define dbg(...) fprintf(stderr,__VA_ARGS__)
#pragma region Geometry
#define pt complex<coord_t>
#define TCT template <typename coord_t>
using ld = long double;
const ld PI = acos(-1.0L), EPS = 1e-9;
using Zpt = complex<ll>; using Rpt = complex<ld>;
#define X real()
#define Y imag()
TCT inline coord_t dot(pt u, pt v) { return (conj(u)*v).X; }
TCT inline coord_t cross(pt u, pt v) { return (conj(u)*v).Y; }
TCT inline coord_t orient(pt a, pt b, pt c) { return cross(b-a,c-b); }
TCT inline coord_t abs2(pt u) { return dot(u,u); }
TCT inline ld abs1(pt u) { return sqrt(ld(abs2(u))); }
TCT istream &operator >> (istream &is, pt &p) {
coord_t x, y; is >> x >> y; p = {x,y}; return is;
}
namespace std {
bool operator < (const Zpt &u, const Zpt &v) {
return u.X == v.X ? u.Y < v.Y : u.X < v.X;
}
}
#undef pt
#undef TCT
#pragma endregion
using pt = Zpt;
const int N = 1e6+3;
int n;
double l;
pt p[N];
int main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> l;
rep(i,1,n) cin >> p[i];
auto covered = [](double x) {
double ptr = 0;
rep(i,1,n) {
double dif = sqrt(x*x-p[i].Y*p[i].Y);
if (p[i].X-dif < ptr+1e-9) Mup(ptr, p[i].X+dif);
}
return l < ptr+1e-9;
};
double a=0, b=1e10, m;
while (b-a > 1e-3) {
m = (a+b)/2;
if (covered(m)) b = m;
else a = m;
}
cout << fixed << setprecision(6) << m;
}
Compilation message (stderr)
mobile.cpp:14: warning: ignoring '#pragma region Geometry' [-Wunknown-pragmas]
14 | #pragma region Geometry
|
mobile.cpp:41: warning: ignoring '#pragma endregion ' [-Wunknown-pragmas]
41 | #pragma endregion
|
# | 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... |