Submission #1196252

#TimeUsernameProblemLanguageResultExecution timeMemory
1196252cpismylifeOwOMobile (BOI12_mobile)C++20
85 / 100
1020 ms31760 KiB
#include <bits/stdc++.h> using namespace std; const long long mod = 1e9 + 7; const int MaxN = 1e6 + 5; int n; long double l; pair<long double, long double> arr[MaxN]; void Inp() { cin >> n >> l; for (int x = 1; x <= n; x++) { cin >> arr[x].first >> arr[x].second; } } pair<long double, long double> now[3]; pair<long double, long double> add[3]; pair<long double, long double> tmp[3]; bool Check(long double k) { int i = 1, j = 1; now[i] = make_pair(0, l); for (int x = 1; x <= n; x++) { if (abs(arr[x].second) >= k) { continue; } long double p = sqrtl(k * k - arr[x].second * arr[x].second); j = 0; if (arr[x].first - p >= 0.0) { j++; add[j] = make_pair(0, min((long double)arr[x].first - p, l)); } if (arr[x].first + p <= l) { j++; add[j] = make_pair(max((long double)arr[x].first + p, (long double)0), l); } int tmpi = i; for (int y = 1; y <= i; y++) { tmp[y] = now[y]; } i = 0; for (int x = 1; x <= tmpi; x++) { for (int y = 1; y <= j; y++) { long double l = max(tmp[x].first, add[y].first), r = min(tmp[x].second, add[y].second); if (l <= r) { i++; now[i] = make_pair(l, r); } } } } return i > 0; } void Exc() { long double l = 0, r = 1e10, mid, res = 0; while (r - l > 1e-3) { mid = (l + r) / 2.0; if (Check(mid)) { res = mid; l = mid; } else { r = mid; } } cout << fixed << setprecision(3) << res; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int test = 1; //cin >> test; for (int x = 1; x <= test; x++) { Inp(); Exc(); } 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...