#include "bits/stdc++.h"
#include <iomanip>
using namespace std;
#define int long long
#define ld long double
signed main()
{
cin.tie(0) -> sync_with_stdio(0);
int n;
cin >> n;
ld ldn = n;
ld a[n];
for(int i = 0; i < n; i++) cin >> a[i];
ld sum = 0;
for(int i = 0; i < n; i++) sum += a[i];
int lm = 0, rm = n - 1;
ld l = sum / ldn, r = sum / ldn;
int cur = l;
if(l > r) swap(l, r);
ldn--;
for(int i = 0; i < n - 1; i++){
ld curl = (sum - a[lm]) / ldn, curr = (sum - a[rm]) / ldn;
if(abs(cur - a[lm]) < abs(cur - a[rm])){
if(curl <= r){
cur = curl;
sum -= a[lm];
lm++;
}
else{
l = min(l, curr);
cur = curr;
sum -= a[rm];
rm--;
}
}
else{
if(curr >= l){
cur = curr;
sum -= a[rm];
rm--;
}
else{
r = max(r, curl);
cur = curl;
sum -= a[lm];
lm++;
}
}
ldn--;
}
cout << fixed << setprecision(10) << r - l << '\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... |