#include <bits/stdc++.h>
using namespace std;
static const double EPS = 1e-10;
template <typename T, typename S>
vector<T>& operator<<(vector<T>& a, S b) {
  a.push_back(b);
  return a;
}
template <typename T>
void operator>>(vector<T>& a, int b) {
  while (b--)
    if (!a.empty()) a.pop_back();
}
bool isprime(int n) {
  if (n < 2) return false;
  for (int i = 2; i * i <= n; i++)
    if (n % i == 0) return false;
  return true;
}
long long b_pow(long long x, long long n) {
  return n ? n == 1 ? x : b_pow(x, n >> 1) * b_pow(x, (n >> 1) + (n & 1)) : 1;
}
string itos(int n) {
  stringstream ss;
  ss << n;
  return ss.str();
}
int main() {
  ios_base::sync_with_stdio(true);
  int n;
  cin >> n;
  vector<long long> w(n);
  for (int i = 0; i < n; i++) cin >> w[i];
  sort(w.begin(), w.end());
  w.erase(unique(w.begin(), w.end()), w.end());
  bool f = true;
  for (int i = 0; i < w.size(); i++) {
    if (!i || w[i] >= (w[i - 1] != 1 ? w[i - 1] * 2 : 1)) {
    } else {
      f = false;
    }
  }
  cout << (!f ? "YES" : "NO") << endl;
}
