Submission #570479

#TimeUsernameProblemLanguageResultExecution timeMemory
570479lamMobile (BOI12_mobile)C++17
0 / 100
1094 ms10632 KiB
#include <bits/stdc++.h> #define int long long #define maxn 100010 using namespace std; int n,L; pair<int,int> a[maxn]; typedef long double ld; bool cmp(pair<ld,ld> x, pair<ld,ld> y) { if (x.second!=y.second) return x.second<y.second; return x.first<y.first; } bool check(ld val) { vector <pair<ld,ld>> b; b.clear(); for (int i=1; i<=n; i++) { ld temp=a[i].second; temp=1.0*temp*temp; if (temp>val) continue; temp=val*val-temp; temp=1.0*sqrt(temp); ld l=a[i].first-temp; ld r=a[i].first+temp; if (r<0) continue; if (l>L) continue; b.push_back({l,r}); } ld temp=0.0; sort(b.begin(),b.end(),cmp); for (int i=0; i<b.size(); i++) { if (b[i].first<=temp) temp=b[i].second; } return temp>=L; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin>>n>>L; for (int i=1; i<=n; i++) { cin>>a[i].first>>a[i].second; } ld l=0.0; ld r=2*1e9; ld ans=-1; for (int i=1; i<=100; i++) { ld mid=l+(r-l)/2; if (check(mid)) { ans=mid; r=mid; } else l=mid; } cout<<fixed<<setprecision(3)<<ans; }

Compilation message (stderr)

mobile.cpp: In function 'bool check(ld)':
mobile.cpp:32:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long double, long double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for (int i=0; i<b.size(); 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...