Submission #460663

#TimeUsernameProblemLanguageResultExecution timeMemory
460663shivensinha4Mobile (BOI12_mobile)C++17
100 / 100
709 ms50936 KiB
#include <bits/stdc++.h> #ifdef mlocal #include "./Competitive-Code-Library/snippets/prettyprint.h" #endif using namespace std; #define for_(i, s, e) for (int i = s; i < (int) e; i++) #define for__(i, s, e) for (ll i = s; i < e; i++) typedef long double ll; typedef vector<int> vi; typedef array<ll, 2> ii; //#define endl '\n' int readInt () { bool minus = false; int result = 0; char ch; ch = getchar(); while (true) { if (ch == '-') break; if (ch >= '0' && ch <= '9') break; ch = getchar(); } if (ch == '-') minus = true; else result = ch-'0'; while (true) { ch = getchar(); if (ch < '0' || ch > '9') break; result = result*10 + (ch - '0'); } if (minus) return -result; else return result; } const ll K = 1e5; int main() { #ifdef mlocal freopen("test_input.txt", "r", stdin); // freopen("test.in", "r", stdin); #endif ios_base::sync_with_stdio(false); cin.tie(0); ll n = readInt(), len = readInt(); // cin >> n >> len; len *= K; vector<ii> pts(n); for_(i, 0, n) { for_(j, 0, 2) { pts[i][j] = readInt(); // cin >> pts[i][j]; pts[i][j] *= K; } } long long l = 0, r = 1e15, ans = l; ll pmid; while (l < r) { ll mid = (l+r)/2; assert(pmid != mid); pmid = mid; bool hole = false; ll cr = 0; for_(i, 0, n) if (mid*mid >= pts[i][1]*pts[i][1]) { ll sq = floor(sqrt(mid*mid - pts[i][1]*pts[i][1])); if (pts[i][0]-sq <= cr) { cr = max(cr, pts[i][0]+sq); } } if (hole or cr < len) { ans = mid; l = mid+1; } else r = mid; } cout << fixed << setprecision(10) << ans/K << 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...