#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]);
R *= R;
R = min(R, r[id] * r[i] * 4);
R = R / (r[id] * 4);
r[i] = R;
if (R < r[id])
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... |