# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1116614 | pemguimn | Balloons (CEOI11_bal) | C++14 | 3 ms | 504 KiB |
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;
const int N = 2e5 + 5;
int n, x[N], r[N];
long double ans[N];
long double calc(int i, int j){
long double lo = 0, hi = r[j];
long double dx = abs(x[j] - x[i]);
for(int t = 0; t < 100; t++){
long double mid = (lo + hi) / 2;
long double dy = abs(mid - ans[i]);
if(dx * dx + dy * dy >= (mid + ans[i]) * (mid + ans[i])){
lo = mid;
} else{
hi = mid;
}
}
return lo;
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
#ifndef Pemgu
#define task "bal"
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
#endif // Pemgu
cin >> n;
for(int i = 1; i <= n; i++){
cin >> x[i] >> r[i];
ans[i] = r[i];
}
stack<int> st;
for(int i = 1; i < n; i++){
long double reach = r[i];
if(st.size()) reach = min(reach, calc(st.top(), i));
ans[i] = reach;
while(st.size() && calc(st.top(), i + 1) > calc(i, i + 1)) st.pop();
st.push(i);
}
while(st.size()){
ans[n] = min(ans[n], calc(st.top(), n));
st.pop();
}
for(int i = 1; i <= n; i++)
cout << setprecision(3) << fixed << ans[i] << "\n";
return 0;
}
Compilation message (stderr)
# | 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... |