Submission #906114

#TimeUsernameProblemLanguageResultExecution timeMemory
906114belgianbotMobile (BOI12_mobile)C++14
8 / 100
420 ms10692 KiB
#include <bits/stdc++.h> #define pow(x, y) (long double)(pow(x, y)) using namespace std; struct coord{ int x, y; }; vector <coord> a; int N, L; /*long double dis(int ax, ay, long double ans) { return (long double)(sqrt(pow(ay, 2) + pow(ax - ans, 2))); } long double distance(int i, int j) { long long num = pow(a[i].y, 2) - pow(a[j].y, 2) - pow(a[j].x, 2) + pow(a[i].x, 2); long long den = 2 * (-a[j].x + a[i].x); if (den == 0) return sqrt(num); long double frac = (long double)(num) / (long double)(den); return frac; }*/ bool solve(long double mid) { long double right(0); for (int i(0); i < a.size(); i++) { if (abs(a[i].y) > mid) continue; long double iLeft = (long double)(a[i].x) - (long double)(sqrt(pow(mid, 2) - pow(a[i].y, 2))); long double iRight = (long double)(a[i].x) + (long double)(sqrt(pow(mid, 2) - pow(a[i].y, 2))); if (iLeft <= right) right = max(right,iRight); } return (right >= L); } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N >> L; a.clear(); int x, y; cin >> x >> y; a.push_back({x, y}); for (int i(0); i < N - 1; i++) { int ax, ay; cin >> ax >> ay; a.push_back({ax, ay}); } long double l(0), r(1e9); long double ans(0); while (r - l > 0.00001) { long double mid = l + (r - l) / 2; if (solve(mid)){ r = mid; ans = r; } else l = mid; } cout << l << '\n'; return 0; }

Compilation message (stderr)

mobile.cpp: In function 'bool solve(long double)':
mobile.cpp:25:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<coord>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  for (int i(0); i < a.size(); i++) {
      |                 ~~^~~~~~~~~~
mobile.cpp: In function 'int main()':
mobile.cpp:47:14: warning: variable 'ans' set but not used [-Wunused-but-set-variable]
   47 |  long double ans(0);
      |              ^~~
#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...