Submission #91770

#TimeUsernameProblemLanguageResultExecution timeMemory
91770updown1Mobile (BOI12_mobile)C++17
50 / 100
851 ms8580 KiB
/* binary search on the answer to test a value x, for all the circles come up with ranges of the line that is covered if the circle has a radius x find the minimum value x s.t. the whole line is covered */ #include <bits/stdc++.h> using namespace std; typedef long long ll; #define For(i, a, b) for(int i=a; i<b; i++) #define ffi For(i, 0, N) #define ffj For(j, 0, N) #define ffa ffi ffj #define s <<" "<< #define c <<" : "<< #define w cout #define e endl//"\n" #define pb push_back #define mp make_pair #define a first #define b second #define int ll #define double long double const int MAXN=100000, INF=1000000000000000000; ///500,000,000 int N, L; pair<double, double> pts[MAXN], rng[MAXN]; bool full(double rr) { /// make the ranges ffi { int x = pts[i].a, y = pts[i].b; if (y*y > rr*rr) {rng[i] = mp(0, 0); continue;} double l = x - sqrt(rr*rr-y*y); double r = x + sqrt(rr*rr-y*y); l = max(l, (double) 0); l = min(l, (double)L); r = max(r, (double) 0); r = min(r, (double)L); rng[i] = mp(l, r); } //exit(0); sort(rng, rng+N); //w<< rr<<e; ffi w<< rng[i].a s rng[i].b<<e; /// see if the whole range is covered double far = 0; ffi { if (rng[i].a > far) return false; far = max(far, rng[i].b); } return far >=L; } main() { //ifstream cin("test.in"); ios_base::sync_with_stdio(0); cin.tie(0); cin >> N >> L; ffi cin >> pts[i].a >> pts[i].b; double a = 0, b = 2236067978; while (b-a > .00001) { double mid = (a+b)/2; if (full(mid)) b = mid; else a = mid; } w<< fixed << setprecision(4) <<a<<e; }

Compilation message (stderr)

mobile.cpp:50:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#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...