Submission #115048

#TimeUsernameProblemLanguageResultExecution timeMemory
115048luciocfMobile (BOI12_mobile)C++14
0 / 100
1077 ms672 KiB
#include <bits/stdc++.h> #define x first #define y second using namespace std; typedef double dd; typedef pair<dd, dd> pt; const int maxn = 5e3+10; const double inf = 2e18+10; const double eps = 1e-9; int n; dd L; pt p[maxn]; dd dist(pt a, pt b) { dd d1 = a.x-b.x; dd d2 = a.y-b.y; return sqrt(d1*d1 + d2*d2); } bool ok(dd X, int ind) { dd ans = inf; for (int i = 1; i <= n; i++) ans = min(ans, dist({X, 0.00}, p[i])); if (fabs(ans-dist({X, 0.00}, p[ind])) < eps) return true; return false; } dd busca_right(int ind) { dd ini = p[ind].x, fim = L, ans = -1.00; for (int i = 1; i <= 64; i++) { dd mid = (ini+fim)/2.00; if (ok(mid, ind)) ans = mid, ini = mid; else fim = mid; } return ans; } dd busca_left(int ind) { dd ini = 0.00, fim = p[ind].x, ans = -1.00; for (int i = 1; i <= 64; i++) { dd mid = (ini+fim)/2.00; if (ok(mid, ind)) ans = mid, fim = mid; else ini = mid; } return ans; } int main(void) { scanf("%d %lf", &n, &L); for (int i = 1; i <= n; i++) scanf("%lf %lf", &p[i].x, &p[i].y); dd ans = 0.00; for (int i = 1; i <= n; i++) { dd posR = busca_right(i); dd posL = busca_left(i); if (posR != -1) ans = max(ans, dist({posR, 0.00}, p[i])); if (posL != -1) ans = max(ans, dist({posL, 0.00}, p[i])); } printf("%.6lf\n", ans); }

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:71:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %lf", &n, &L);
  ~~~~~^~~~~~~~~~~~~~~~~~
mobile.cpp:74:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lf %lf", &p[i].x, &p[i].y);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...