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;
typedef long long ll;
typedef long double ld;
const int INF = 1000000000;
const ll LINF = (ll) INF * (ll) INF;
const ld DINF = (ld) INF * (ld) INF;
int main() {
int n;
cin >> n;
vector<pair<ld, ld>> arr(n);
for (int i=0; i<n; i++) {
cin >> arr[i].first; //x coord
cin >> arr[i].second; //radius
}
pair<ld, ld> big_r = arr[0];
pair<ld, ld> big_h = arr[0];
for (int i=1; i<n; i++) {
ld h1 = arr[i].first - big_h.first;
ld r1 = (h1 * h1)/(4 * big_h.second);
ld h2 = arr[i].first - big_r.first;
ld r2 = (h2 * h2)/(4 * big_r.second);
//cout << r1 << " " << r2 << endl;
arr[i].second = min(arr[i].second, min(r1, r2));
big_h = arr[i];
if (arr[i].second > big_r.second) {
big_r = arr[i];
}
}
cout << setprecision(20);
for (int i=0; i<n; i++) {
cout << arr[i].second << 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... |