func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<long long> a;   long long n;   long long pos1;   double ct1, ct2 = 0;   long long z;   long long fun(long long l, long long r, vector<vector<long long> > dpp) {     if (dpp[l][r] != -1) return dpp[l][r];     long long i, j, sum = 0;     for (i = l; i < r; i++) {       long long z = abs(a[i] - a[i + 1]);       z = z * pow(-1, i - l);       sum += z;     }     return dpp[l][r] = sum;   }   long long solve(long long l, long long r, vector<vector<long long> > dp,                   vector<vector<long long> > dpp) {     if (l > r) return 0;     if (dp[l][r] != -1) return dp[l][r];     long long x, y;     x = solve(l + 1, r, dp, dpp);     long long z = fun(l, r, dpp);     y = solve(l, r - 1, dp, dpp);     return dp[l][r] = max(z, max(x, y));   }   int main() {     long long i, j, k, l, m, t;     t = 1;     while (t--) {       long long a, b;       cin >> n >> a >> b;       vector<long long> v;       for (i = 0; i < n; i++) {         cin >> k;         v.push_back(k);       }       sort(v.begin(), v.end());       m = min(a, b);       b = max(a, b);       a = m;       i = n - 1;       long long sum1 = 0, sum2 = 0;       while (m--) {         sum1 += v[i];         i--;       }       double ans1 = (double)sum1 / a;       m = b;       while (m--) {         sum2 += v[i];         i--;       }       double ans2 = (double)sum2 / b;       ans1 += ans2;       cout << fixed << setprecision(12) << ans1;     }     return 0;   }   