제출 #1290034

#제출 시각아이디문제언어결과실행 시간메모리
1290034_filya_Mobile (BOI12_mobile)C++20
0 / 100
1099 ms97544 KiB
#include<bits/stdc++.h> typedef long long ll; using namespace std; int main() { // ifstream cin("input.txt"); // ofstream cout("output.txt"); ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, L; cin >> n >> L; vector<pair<long double, long double>> points(n); for (int i = 0; i < n; i++) cin >> points[i].first >> points[i].second; long double low = 0, high = 2e9; while(high - low > 1e-5) { long double mid = (low + high) / 2; vector<pair<long double, int>> intervals; bool can1 = true, can2 = false; for (auto p : points) { if (abs(mid) < abs(p.second)) can1 = false; else { intervals.push_back({p.first - sqrt(mid * mid - p.second * p.second), 1}); intervals.push_back({p.first + sqrt(mid * mid - p.second * p.second), -1}); } } sort(intervals.begin(), intervals.end(), [&](pair<long double, int>& p1, pair<long double, int>& p2) { if (p1.first == p2.first) { return (p1.second > p2.second); } else return (p1.first < p2.first); }); int cur_cnt = 0; for (auto& p : intervals) { if (p.first > L) break; if (p.first < 0) continue; cur_cnt += p.second; if (cur_cnt == n) can2 = true; } if (can1 && can2) { high = mid; } else { low = mid; } } cout << fixed << setprecision(5) << low << '\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...