Submission #553425

#TimeUsernameProblemLanguageResultExecution timeMemory
553425Hona_NguyenMobile (BOI12_mobile)C++14
0 / 100
3 ms396 KiB
#include<bits/stdc++.h> #define prob "mobile" #define x first #define y second using namespace std; const int maxn = 1e6; const int MOD = 1e9 + 7; const double eps = 1e-9; int n,L; pair<double,double> p[maxn+5]; int main(){ freopen(prob".in","r",stdin); freopen(prob".out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin >> n >> L; for(int i=1;i<=n;i++) cin >> p[i].x >> p[i].y; auto check = [&](double val) -> int{ vector<pair<double,double>> G; for(int i=1;i<=n;i++){ // if(val < p[i].y) return 0; double tmp = sqrt(val*val-p[i].y*p[i].y); double xL = p[i].x - tmp; double xR = p[i].x + tmp; G.push_back(make_pair(xL,xR)); } sort(G.begin(),G.end(), [](const pair<double,double> A, const pair<double,double> B){ if(A.first == B.first) return A.second < B.second; return A.first < B.first; }); double curx = 0; for(int i=0;i<n;i++){ if(G[i].x <= curx){ curx = max(curx, G[i].y); } } if(curx >= (double)(L)) return 1; return 0; }; double low = 1, high = (double)(2e9), res = 0; for(int i=1;i<=100;i++){ if(high < low) break; double mid = (low + high) / (double)(2); if(check(mid)){ res = mid; high = mid; } else{ low = mid; } } cout << fixed << setprecision(4); cout << res; }

Compilation message (stderr)

mobile.cpp: In function 'int main()':
mobile.cpp:12:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     freopen(prob".in","r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
mobile.cpp:13:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     freopen(prob".out","w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...