Submission #1294386

#TimeUsernameProblemLanguageResultExecution timeMemory
1294386sritthebossMobile (BOI12_mobile)C++20
8 / 100
1097 ms63876 KiB
#include "bits/stdc++.h" #define INF 1e18 using namespace std; bool test(int n, int l, double r, vector<pair<double, double>> stations) { vector<pair<double, double>> intervals; for (int i = 0; i < n; i++) { if (stations[i].second >= -r && stations[i].second <= r) { double x = stations[i].first; double y = stations[i].second; double lower = x - sqrt(pow(r, 2) - pow(y, 2)); double upper = x + sqrt(pow(r, 2) - pow(y, 2)); intervals.push_back({lower, upper}); } } stack<pair<double, double>> s; for (auto interval : intervals) { while (!s.empty() && s.top().second >= interval.first) { interval = {min(interval.first, s.top().first), max(interval.second, s.top().second)}; s.pop(); } s.push(interval); } while (!s.empty()) { if (s.top().first <= 0 && s.top().second >= l) { return true; } s.pop(); } return false; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, l; cin >> n >> l; vector<pair<double, double>> stations(n); for (int i = 0; i < n; i++) { cin >> stations[i].first >> stations[i].second; } double lo = 0, hi = 1.1e9; while (hi - lo > 1e-3) { double mid = (lo + hi) / 2; if (test(n, l, mid, stations)) { hi = mid; } else { lo = mid; } } cout << lo << endl; }
#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...