Submission #930450

#TimeUsernameProblemLanguageResultExecution timeMemory
930450sleepntsheepMobile (BOI12_mobile)C++17
0 / 100
1091 ms8228 KiB
#include <stdio.h> #include <math.h> #define N 1000000 int n, L, x[N], y[N]; int ok(long double m) { m *= m; long double li = 0, ri = L; for (int i = 0; i < n; ++i) { long double lbnd = INFINITY, rbnd = -INFINITY; auto f = [&](long double x_p) { return x_p*x_p - 2*x_p*x[i]; }; auto A = m - x[i] * x[i] - y[i] * y[i]; if (f(x[i]) > A) return 0; long double l = -1e9, r = x[i]; for (int iter = 100; iter--;) { long double mm = (l+r)/2; if (f(mm) <= A) r = mm, lbnd = mm; else l = mm; } l = x[i], r = 1e9; for (int iter = 100; iter--;) { long double mm = (l+r)/2; if (f(mm) <= A) r = mm, lbnd = mm; else r = mm; } if (lbnd > li) li = lbnd; if (ri > rbnd) ri = rbnd; } if (li > ri) return 0; return 1; } int main() { scanf("%d%d", &n, &L); for (int i = 0; i < n; ++i) scanf("%d%d", x+i, y+i); long double l = 0, r = 2e9; for (int iter = 200; iter--;) { long double m = (l+r)/2; if (ok(m)) r = m; else l = m; } printf("%.6Lf", r); return 0; }

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |     scanf("%d%d", &n, &L);
      |     ~~~~~^~~~~~~~~~~~~~~~
mobile.cpp:49:38: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |     for (int i = 0; i < n; ++i) scanf("%d%d", x+i, y+i);
      |                                 ~~~~~^~~~~~~~~~~~~~~~~~
#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...