Submission #167086

#TimeUsernameProblemLanguageResultExecution timeMemory
167086dolphingarlicMobile (BOI12_mobile)C++14
50 / 100
1091 ms48336 KiB
#include <bits/stdc++.h> #pragma GCC Optimize("unroll-loops") #pragma GCC Optimize("O3") #pragma GCC target("sse4,avx2,fma,avx") #define FOR(i, x, y) for (int i = x; i < y; i++) #define x first #define y second using namespace std; pair<double, double> p[1000000]; pair<double, int> contacts[2000000]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; double len; cin >> n >> len; FOR(i, 0, n) cin >> p[i].x >> p[i].y; double l = 1, r = 5e8; while (r - l > 1e-4) { double mid = (l + r) / 2; int cnt = 0; FOR(i, 0, n) { if (mid < abs(p[i].y)) continue; double delta = sqrt(mid * mid - p[i].y * p[i].y); contacts[cnt++] = {p[i].x - delta, 1}; contacts[cnt++] = {p[i].x + delta, -1}; } contacts[cnt++] = {0.0, 0}; contacts[cnt++] = {len, 0}; sort(contacts, contacts + cnt); int active = 0; bool good = true; FOR(i, 0, cnt) { active += contacts[i].y; if (contacts[i].x > len) break; if (contacts[i].x < 0) continue; if (active == 0) { good = false; break; } } if (good) r = mid; else l = mid; } cout << fixed << setprecision(3) << l; return 0; }

Compilation message (stderr)

mobile.cpp:2:0: warning: ignoring #pragma GCC Optimize [-Wunknown-pragmas]
 #pragma GCC Optimize("unroll-loops")
 
mobile.cpp:3:0: warning: ignoring #pragma GCC Optimize [-Wunknown-pragmas]
 #pragma GCC Optimize("O3")
#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...