func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n, a[1000005];   std::vector<pair<double, pair<long long, long long> > > v;   signed main() {     scanf( %lld , &n);     for (long long i = 1; i <= n; i++) {       scanf( %lld , &a[i]);     }     for (long long i = 1; i <= n; i++) {       v.push_back(make_pair(1.0 * a[i], make_pair(i, i)));       while (v.size() > 1 && v[v.size() - 1].first <= v[v.size() - 2].first) {         double val1 = v[v.size() - 1].first;         double val2 = v[v.size() - 2].first;         pair<long long, long long> interval1 = v[v.size() - 1].second;         pair<long long, long long> interval2 = v[v.size() - 2].second;         v.pop_back();         v.pop_back();         v.push_back(make_pair((val1 * (interval1.second - interval1.first + 1) +                                val2 * (interval2.second - interval2.first + 1)) /                                   (interval1.second - interval2.first + 1),                               make_pair(interval2.first, interval1.second)));       }     }     for (long long i = 0; i < v.size(); i++) {       pair<long long, long long> interval = v[i].second;       for (long long j = interval.first; j <= interval.second; j++) {         printf( %.10lf n , v[i].first);       }     }     return 0;   }   