#include <bits/stdc++.h>
using namespace std;
bool can(vector<int>& v, int m) {
  int p = 0;
  for (int i = m; i < (int)v.size(); i++) {
    if (2 * v[i] > v[p]) return false;
    p++;
  }
  return true;
}
int main() {
  int n;
  cin >> n;
  vector<int> v;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    v.push_back(x);
  }
  sort(v.rbegin(), v.rend());
  int lo = (int)v.size() / 2, hi = (int)v.size();
  if ((int)v.size() % 2 != 0) lo++;
  while (lo + 1 < hi) {
    int mid = lo + (hi - lo) / 2;
    if (can(v, mid))
      hi = mid;
    else
      lo = mid + 1;
  }
  if (can(v, lo))
    cout << lo;
  else
    cout << lo + 1;
  return 0;
}
