#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const double PI = acos(-1.0);
const int maxn = 1e5 + 5;
template <class T>
inline bool Read(T &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return 0;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
void Out(int a) {
  if (a < 0) {
    putchar('-');
    a = -a;
  }
  if (a >= 10) Out(a / 10);
  putchar(a % 10 + '0');
}
double num[110000];
int main() {
  int a, b, c;
  scanf("%d%d%d", &(a), &(b), &(c));
  for (int(i) = (0); (i) < (a); ++(i)) {
    Read(num[i]);
  }
  double res = 0;
  sort(num, num + a, greater<int>());
  int b1, c1;
  c1 = max(b, c);
  b1 = min(b, c);
  for (int(i) = (0); (i) < (b1); ++(i)) {
    res += (num[i] / b1);
  }
  for (int(i) = (b1); (i) < (b1 + c1); ++(i)) {
    res += (num[i] / c1);
  }
  printf("%.8f\n", res);
}
