제출 #1245753

#제출 시각아이디문제언어결과실행 시간메모리
1245753tredsused70Mobile (BOI12_mobile)C++20
100 / 100
262 ms16056 KiB
//#pragma GCC optimize("O3") //#pragma GCC optimize("unroll-loops") //#pragma GCC target("avx,avx2") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,avx,avx2") //#pragma GCC optimize("trapv") #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define all(x) x.begin(), x.end() #define mpr make_pair typedef long long ll; typedef unsigned long long ull; typedef long double ld; const int nmax = 1000011, mod = 1000000007, inf = 2000010000, key = 200003, lg = 20, block = 300; const ll infll = 4000000000000000000; const ld eps = 1e-9; bool check(vector<array<int, 2>> vc, ld d, int e) { ld cur = 0, l, r; for(int i = 0; i < vc.size(); i++) { if(abs(vc[i][1]) >= d) continue; l = vc[i][0] - sqrt(d * d - 1ll * vc[i][1] * vc[i][1]); r = vc[i][0] + sqrt(d * d - 1ll * vc[i][1] * vc[i][1]); //cout << i << " " << d << cur << " " << l << " " << r << "\n"; if(l <= cur) { if(r >= e) return 1; cur = max(cur, r); } else { if(vc[i][0] > cur + d) return 0; } } //cout << "\n\n"; return (cur >= e); } void solve() { int n, ln; cin >> n >> ln; vector<array<int, 2>> vc(n); for(int i = 0; i < n; i++) { cin >> vc[i][0] >> vc[i][1]; } sort(all(vc)); ld l = 0, r = 3000000000; while(r - l > 0.0005) { ld m = (l + r) / 2; if(check(vc, m, ln)) r = m; else l = m; } cout << fixed << setprecision(6) << r << "\n"; return ; } int main() { //freopen("balancing.in","r",stdin); //freopen("balancing.out","w",stdout); ios_base::sync_with_stdio(0);cin.tie(0); srand(8713); //init(); int t = 1; //cin >> t; //int t_ = t; //t = rdi(); while(t--) { //cout << "Case #" << t_ - t << ": "; solve(); } //flush(); return 0; } /* 6 1 1 1 3 1 5 1 7 1 9 1 11 */
#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...