#include <bits/stdc++.h>
#define int long long
using ld = long double;
#define f first
#define s second
using namespace std;
pair<int, ld> a[200001];
ld res[200001];
signed main(){
int n;
cin >> n;
for (int i = 1;i<=n;++i){
cin >> a[i].f >> a[i].s;
}
vector<int> luu;
luu.push_back(1);
res[1] = a[1].s;
for (int j = 2;j<=n;++j){
res[j] = a[j].s;
while(!luu.empty()){
int i = luu.back();
ld sol= (a[i].f-a[j].f)*(a[i].f-a[j].f);
sol /= 4.0 * a[i].s;
if(sol < res[j]){
res[j] = sol;
}
if(res[j] < res[i])break;
luu.pop_back();
}
luu.push_back(j);
}
for (int i = 1;i<=n;++i){
cout << fixed << setprecision(3) << res[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... |