제출 #477074

#제출 시각아이디문제언어결과실행 시간메모리
477074qwerty1234Mobile (BOI12_mobile)C++17
50 / 100
1092 ms48128 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; bool check(double maxDist, vector<pair<double, double>> &transceivers, ll N, ll L) { vector<pair<double, double>> bounds; double covered = 0; for (int i = 0; i < N; i++) { double ySquared = transceivers[i].second * transceivers[i].second; double hypoSquared = maxDist * maxDist; if (hypoSquared - ySquared < 0) { continue; } double x = sqrt(hypoSquared - ySquared); // if (transceivers[i].first - x <= covered) { // covered = max(covered, transceivers[i].first + x); // } bounds.push_back({ transceivers[i].first - x, transceivers[i].first + x }); } for (int i = 0; i < (int)bounds.size(); i++) { if (bounds[i].first <= covered) { covered = max(covered, bounds[i].second); } } return covered >= (double)L; } int main() { ll N, L; cin >> N >> L; vector<pair<double, double>> transceivers(N); for (int i = 0; i < N; i++) cin >> transceivers[i].first >> transceivers[i].second; double l = 0; double r = 1e18; double ans = 0; while (r - l >= 0.001) { double mid = l + (r - l) / 2; // cout << l << ' ' << r << ' ' << mid << '\n'; if (check(mid, transceivers, N, L)) { r = mid; ans = mid; } else { l = mid; } } printf("%0.7lf\n", ans); }
#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...