Submission #1255732

#TimeUsernameProblemLanguageResultExecution timeMemory
1255732NipphitchMobile (BOI12_mobile)C++20
0 / 100
270 ms15944 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int T = 100000; // scale factor const int INF = 4e14; // upper bound for scaled distance int n; long long L; vector<long long> x, y; bool can(int mid) { // mid is the radius (scaled by T) long double mnhi = 1e18, mxlo = -1e18; for (int i = 0; i < n; i++) { if (y[i] > mid) return false; // can't reach vertically long double dx = sqrtl((long double)mid * mid - (long double)y[i] * y[i]); mxlo = max(mxlo, (long double)x[i] - dx); mnhi = min(mnhi, (long double)x[i] + dx); } return (mnhi >= mxlo && mnhi >= 0 && mxlo <= L); } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> L; L *= T; x.resize(n); y.resize(n); for (int i = 0; i < n; i++) { cin >> x[i] >> y[i]; x[i] *= T; y[i] *= T; } int lo = 0, hi = INF; while (lo < hi) { int mid = (lo + hi) / 2; if (can(mid)) hi = mid; else lo = mid + 1; } cout << lo / T << "."; int rem = lo % T; string s = to_string(rem); while ((int)s.size() < 5) s = '0' + s; cout << s << "\n"; }
#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...