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
}
vector<pair<ld, ld>> q;
q.push_back(arr[0]);
for (int i=1; i<n; i++) {
while (true) {
//cout << "loop" << endl;
for (pair<ld, ld> k : q) {
cout << k.first << " " << k.second << ") ";
}
cout << endl;
if (q.empty()) {
break;
}
pair<ld, ld> last = q[i-1];
ld h1 = arr[i].first - last.first;
ld r1 = (h1 * h1)/(4 * last.second);
if (q.size() == 1) {
arr[i].second = min(arr[i].second, r1);
break;
}
pair<ld, ld> second_last = q[i-2];
ld h2 = arr[i].first - second_last.first;
ld r2 = (h2 * h2)/(4 * second_last.second);
//cout << "r1r2 " << r1 << " " << r2 << endl;
if (r2 < r1) {
q.pop_back();
} else {
break;
}
arr[i].second = min(arr[i].second, min(r2, r1));
}
cout << setprecision(20) << endl;
q.push_back(arr[i]);
}
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... |