Submission #1162058

#TimeUsernameProblemLanguageResultExecution timeMemory
1162058jaredMobile (BOI12_mobile)C++20
30 / 100
1096 ms16096 KiB
#include "bits/stdc++.h" #define int long long #define double long double using namespace std; int n, L; vector<pair<int, int> > p; // bool ok(double radius) { // double end = 0; // for (auto [x, y]: p) { // // Equation of a circle: (X - x)^2 + (Y - y)^2 = r^2 // // Want to find intersect with Y = 0, // // (X - x)^2 = r^2 - y^2 // // X = (+-) sqrt(r^2 - y^2) + x // double delta = sqrt(radius * radius - y * y); // double l_intercept = -delta + x, r_intercept = delta + x; // if (l_intercept <= end) end = max(end, r_intercept); // } // return end >= L; // } signed main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); cin >> n >> L; p.resize(n); for (auto &i: p) cin >> i.first >> i.second; double l = 0, r = INT_MAX; while (r - l > 1e-3) { double mid = l + (r - l) / 2; double end = 0; for (auto [x, y]: p) { // Equation of a circle: (X - x)^2 + (Y - y)^2 = r^2 // Want to find intersect with Y = 0, // (X - x)^2 = r^2 - y^2 // X = (+-) sqrt(r^2 - y^2) + x double delta = sqrt(mid * mid - y * y); double l_intercept = -delta + x, r_intercept = delta + x; if (l_intercept <= end) end = max(end, r_intercept); } if (end >= L) r = mid; else l = mid; } cout << fixed << setprecision(4) << l << endl; return 0; }
#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...