# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
670283 | 2022-12-08T14:46:28 Z | RadicaI | Mobile (BOI12_mobile) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ cout.precision(7); int n,siz; cin >> n>>siz; pair<ll, ll> stations[n]; for(int i=0; i<n; i++) cin >> stations[i].first >> stations[i].second; e9; while(r - l > 1e-3){ double m = (l+r)/2.0; double store=0; for(int i=0; i<n; i++){ double ph = stations[i].first + sqrt(m*m-stations[i].second*stations[i].second); double pl = stations[i].first - sqrt(m*m-stations[i].second*stations[i].second); if(pl<=store) store = max(store, ph); } if(store>=siz) r=m; else l=m; } cout << l; }