#include<bits/stdc++.h>
#define ll long long
#define double long double
#define pii pair<double,double>
#define pdd pair<double,double>
#define tiii tuple<int,int,int>
using namespace std;
double eps = 1e-6;
double dist(pdd a, pdd b){
double dx = a.first-b.first;
double dy = a.second-b.second;
return sqrt((dx*dx)+(dy*dy));
}
double get(pii bal, int p){
double top = (bal.first-p)*(bal.first-p);
return (top/(4*bal.second));
}
int main(){
int n;
cin >> n;
vector<int> arr(n);
vector<double> constr(n);
for(int i = 0; i < n; i++){
cin >> arr[i] >> constr[i];
}
cout << fixed << setprecision(3);
vector<pii> S;
for(int i = 0; i < n; i++){
double val = 1e9;
val = min(val, constr[i]);
while(S.size() && get(S.back(),arr[i]) >= S.back().second){
S.pop_back();
}
if(S.size())val = min(val, get(S.back(),arr[i]));
S.push_back({arr[i],val});
cout << val << "\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... |