#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const double D_INF = 1e100;
const double eps = 1e-8;
const double C = 0.577215664901532860606;
const double Pi = 3.141592653589793238;
const double e = 2.71828182845904523536;
inline int lowbit(int x) { return x & -x; }
inline int highbit(int x) {
  while (x != lowbit(x)) x -= lowbit(x);
  return x;
}
template <typename X>
inline bool min_update(X& p, X q) {
  if (p <= q) return 0;
  p = q;
  return 1;
}
template <typename X>
inline bool max_update(X& p, X q) {
  if (p >= q) return 0;
  p = q;
  return 1;
}
int toInt(string s) {
  istringstream sin(s);
  int t;
  sin >> t;
  return t;
}
template <class T>
string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
int v[500005];
int MAIN() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> v[i];
  sort(v, v + n, greater<int>());
  int i = 0, j = n / 2;
  int ret = 0;
  while (i < n && j < n) {
    if (v[i] == -1) {
      i++;
      continue;
    }
    if (i == j) {
      j++;
      continue;
    }
    if (v[i] < (long long)v[j] * 2LL)
      j++;
    else {
      ret++;
      v[i] = v[j] = -1;
      i++;
      j++;
    }
  }
  for (int i = 0; i < n; i++)
    if (v[i] > 0) ret++;
  cout << ret << endl;
  return 0;
}
int main() {
  ios ::sync_with_stdio(false);
  return MAIN();
}
