Submission #1148847

#TimeUsernameProblemLanguageResultExecution timeMemory
1148847LilPlutonBalloons (CEOI11_bal)C++20
20 / 100
2095 ms7492 KiB
#include <bits/stdc++.h> using namespace std; #define ld long double #define ll long long #define eb emplace_back const int inf = 1e9; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); auto check = [&](int x1, ld y1, int x2, ld y2) -> bool { ld dist = sqrtl((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); return dist <= (y1 + y2); }; ld eps = 1e-9; int n; cin >> n; vector<int> x(n); vector<ld> rr(n), ans(n); for(int i = 0; i < n; ++i){ cin >> x[i] >> rr[i]; if(i == 0){ ans[i] = rr[i]; } else { ld mn = rr[i]; for(int j = 0; j < i; ++j){ ld l = 0.0, r = rr[i], best = r; while(r - l > eps){ ld mid = (l + r) / 2; if(!check(x[j], ans[j], x[i], mid)){ best = mid; l = mid; } else { r = mid; } } mn = min(mn, best); } ans[i] = mn; } } cout << fixed << setprecision(3); for(int i = 0; i < n; ++i){ cout << ans[i] << '\n'; } }
#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...