#include<bits/stdc++.h>
using namespace std;
using dd = long double;
int main() {
dd n;
cin >> n;
stack<pair<dd,dd>> s;
vector<dd> bsize(n);
for(int i = 0 ;i < n; i++) {
dd val, msize;
cin >> val;
cin >> msize;
if(s.empty()) {
bsize[i] = msize;
s.push({msize , i});
continue;
}
dd rnow = msize;
while(!s.empty()) {
dd dist = val - s.top().second;
dd rprev = s.top().first;
rnow = min(rnow, (dist * dist) / (4 * rprev));
if(rnow < rprev) {
bsize[i] = rnow;
break;
}
else {
s.pop();
}
}
s.push({rnow , i});
}
for(auto &x: bsize) {
printf("%.3Lf\n", x);
}
}
# | 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... |