#include <cassert>
#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;
using ld = long double;
// 1/a * (x - b)^2
struct Quad {
ld a;
uint b;
ld eval(uint x) const {
assert(x >= b);
ld dst = x - b;
return (dst * dst) / a;
}
};
struct Bal {
uint x, r;
};
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
uint n;
cin >> n;
vector<Bal> baloons(n);
for (uint i = 0; i < n; i++) {
cin >> baloons[i].x >> baloons[i].r;
}
vector<Quad> quads;
quads.reserve(n);
vector<ld> rs(n);
for (uint i = 0; i < n; i++) {
rs[i] = baloons[i].r;
for (Quad q: quads) {
rs[i] = min(rs[i], q.eval(baloons[i].x));
}
quads.push_back({4 * rs[i], baloons[i].x});
}
cout << fixed << setprecision(3);
for (ld r : rs) {
cout << r << '\n';
}
}
| # | 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... |