#include <algorithm>
#include <deque>
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;
typedef long long ll;
vector<double> p, pref;
double solve(double l, double r, double mn, double mx) {
double cnt = r - l;
double sum = pref[r] - pref[l];
double center = sum / cnt;
mx = max(mx, center);
mn = min(mn, center);
if (cnt == 1) {
return mx - mn;
}
double q1 = solve(l + 1, r, mn, mx);
double q2 = solve(l, r - 1, mn, mx);
return min(q1, q2);
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
double n;
cin >> n;
p.resize(n + 1, 0);
pref.resize(n + 1, 0);
for (int i = 1; i <= n; ++i) {
cin >> p[i];
pref[i] = pref[i - 1] + p[i];
}
cout << fixed << setprecision(10);
cout << solve(0, n, 1e9, 0) << '\n';
}
# | 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... |