fork download
  1. // ~~ icebear ~~
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef pair<int, int> ii;
  7. typedef pair<ii, int> iii;
  8.  
  9. #define FOR(i,a,b) for(int i=a; i<=b; ++i)
  10. #define FORR(i,a,b) for(int i=a; i>=b; --i)
  11. #define rep(i, n) for(int i=0; i<n; ++i)
  12. #define red(i, n) for(int i=n-1; i>=0; --i)
  13. #define mp make_pair
  14. #define pb push_back
  15. #define fi first
  16. #define se second
  17. #define task "delseq"
  18.  
  19. const int MOD = 1e9 + 7;
  20. const int inf = 1e9 + 27092008;
  21. const ll LLinf = 1e18 + 27092008;
  22. const double eps = 1e-6;
  23. const int N = 1e5 + 5;
  24. int n, a[N];
  25. double b[N];
  26.  
  27. bool check(double x){
  28. FOR(i,1,n) b[i] = b[i-1] + a[i] - x;
  29. double Min = b[1];
  30. FOR(i,2,n-1){
  31. if (b[n] - (b[i] - Min) <= 0) return true;
  32. Min = min(Min, b[i]);
  33. }
  34. return false;
  35. }
  36.  
  37. void solve(){
  38. cin >> n;
  39. FOR(i,1,n) cin >> a[i];
  40. double l = 1 - eps, r = 1e9 + eps, res;
  41. while(r - l > eps){
  42. double mid = (l + r) / 2.0;
  43. if (check(mid)) res = mid, r = mid - eps;
  44. else l = mid + eps;
  45. }
  46. cout << fixed << setprecision(3) << res;
  47. }
  48.  
  49. int main(){
  50. ios_base::sync_with_stdio(0);
  51. cin.tie(0); cout.tie(0);
  52. if (fopen(task".inp", "r")){
  53. freopen(task".inp", "r", stdin);
  54. freopen(task".out", "w", stdout);
  55. }
  56. int tc = 1;
  57. // cin >> tc;
  58. while(tc--) solve();
  59. return 0;
  60. }
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
0.000