func_code_string: #include <bits/stdc++.h>   using namespace std;   complex<long long int> convex[1000006];   long long int cross(complex<long long int> a, complex<long long int> b) {     return a.real() * b.imag() - b.real() * a.imag();   }   int main() {     long long int n;     scanf( %lld , &n);     long long int sum = 0;     vector<complex<long long int>> vertexs;     vertexs.push_back(complex<long long int>(0, 0));     for (long long int i = 0; i < n; i++) {       long long int tmp;       scanf( %lld , &tmp);       sum += tmp;       vertexs.push_back(complex<long long int>(i + 1, sum));     }     convex[0] = vertexs[0];     long long int vn = 1;     for (long long int i = 1; i <= n; i++) {       convex[vn++] = vertexs[i];       while (vn > 2) {         if (cross(convex[vn - 1] - convex[vn - 3],                   convex[vn - 2] - convex[vn - 3]) > 0) {           convex[vn - 2] = convex[vn - 1];           vn--;         } else {           break;         }       }     }     for (long long int i = 1; i < vn; i++) {       double len = convex[i].real() - convex[i - 1].real();       for (long long int j = 0; j < len; j++) {         printf( %.10lf n , (convex[i].imag() - convex[i - 1].imag()) / len);       }     }   }   