func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   int a[200000 + 9];   long long com[200000 + 9];   double f1(int i, int k) {     long long sum1 = a[i] + com[n] - com[n - k] + com[i - 1] - com[i - 1 - k];     double av1 = (double)sum1 / (2 * k + 1);     return av1;   }   double f2(int i, int k) {     long long sum2 =         a[i] + com[n] - com[n - (k - 1)] + com[i - 1] - com[i - 1 - (k - 1)];     double av2 = (double)sum2 / (2 * (k - 1) + 1);     return av2;   }   long long ValAt(int i, int k) {     long long sum = a[i] + com[n] - com[n - k] + com[i - 1] - com[i - 1 - k];     return sum;   }   int main() {     cin.tie(0);     cin.sync_with_stdio(0);     cin >> n;     for (int i = (1); i <= (n); i++) cin >> a[i];     sort(a + 1, a + n + 1);     if (n <= 2) {       cout << n <<   n ;       for (int i = (1); i <= (n); i++) cout << a[i] <<    ;       cout <<   n ;       return 0;     }     com[0] = 0;     for (int i = (1); i <= (n); i++) com[i] = com[i - 1] + a[i];     double bestVal = 0;     int besti = 1, bestSize = 1;     for (int i = 2; i < n; i++) {       int s = 1, e = min(i - 1, n - i);       double bestAv = 0;       int size;       while (s <= e) {         int k = (s + e) / 2;         long long sum1 = ValAt(i, k);         double av1 = (double)sum1 / (2 * k + 1);         long long sum2 = ValAt(i, k - 1);         double av2 = (double)sum2 / (2 * (k - 1) + 1);         if (av1 > av2) {           s = k + 1;           bestAv = av1;           size = 2 * k + 1;         } else           e = k - 1;       }       double val = bestAv - a[i];       if (val > bestVal) {         bestVal = val;         besti = i;         bestSize = size;       }     }     vector<int> v;     v.push_back(a[besti]);     int k = (bestSize - 1) / 2;     for (int i = besti - 1; i >= besti - k; i--) v.push_back(a[i]);     for (int i = n; i > n - k; i--) v.push_back(a[i]);     sort(v.begin(), v.end());     cout << bestSize <<   n ;     for (auto x : v) cout << x <<    ;     cout <<   n ;     return 0;   }   