#include <bits/stdc++.h>
using namespace std;
#define ld long double
struct Circle{
int x; ld r;
};
const int MAXN = 2e5 + 5;
int n;
Circle circles[MAXN];
void init() {
cin >> n;
for (int i = 1; i <= n; ++i)
cin >> circles[i].x >> circles[i].r;
}
void solve() {
vector<Circle> st;
for (int i = 1; i <= n; ++i) {
ld rad = circles[i].r;
while (!st.empty()) {
Circle cur = st.back();
ld cur_rad = (ld)1.0 * (cur.x - circles[i].x) * (cur.x - circles[i].x) / (4.0 * cur.r);
rad = min(rad, cur_rad);
if (rad >= cur.r) {
st.pop_back();
}
else {
break;
}
}
cout << fixed << setprecision(16);
cout << rad << '\n';
st.push_back({circles[i].x, rad});
}
}
signed main() {
#ifdef NCTHANH
freopen("input.txt", "r", stdin);
#endif // NCTHANH
ios_base::sync_with_stdio(0);
cin.tie(nullptr); cout.tie(nullptr);
init();
solve();
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |