This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
using namespace std;
#define N (1<<18) // 4194304
#define ld double
#define x first
#define r second
typedef pair<ld, ld> p;
ld rad(p b, p a){
return (b.x - a.x)*(b.x - a.x)/(4*a.r);
}
int main(){
int n; cin >> n;
vector<p> v(n);
vector<ld> r(n);
for(int i=0; i<n; ++i){ ld a, b; cin >> a >> b; v[i] = {a, b}; }
stack<p> st;
for(int i=0; i<n; ++i){
ld curr = v[i].r;
while(!st.empty()){
ld check = rad(v[i], st.top());
curr = min(curr,check);
if(check>=st.top().r){ st.pop(); continue; }
else break;
}
r[i] = curr;
st.push({v[i].x, curr});
}
cout << fixed << setprecision(3);
for(int i=0; i<n; ++i) cout << r[i] << endl;
}
# | 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... |