#include <iostream>
#include <iomanip>
#include <stack>
using namespace std;
long double x[1<<18], r[1<<18];
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cout<<fixed<<setprecision(3);
int n;
cin>>n;
for (int i=1;i<=n;i++)
cin>>x[i]>>r[i];
stack<int> stk;
stk.push(1);
for (int i=2;i<=n;i++){
while (stk.size() > 0){
int id = stk.top();
long double R = ((x[i] - x[id]) * (x[i] - x[id])) / (r[id] * 4);
R = min(R, r[i]);
if (r[i] < r[id]){
r[i] = R;
break;
}
stk.pop();
}
// while (stk.size() > 0 and r[stk.top()] <= r[i])
// stk.pop();
stk.push(i);
}
for (int i=1;i<=n;i++)
cout<<r[i]<<'\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... |