#include <bits/stdc++.h>
using namespace std;
multiset<int> s;
const int maxn = 1e5 + 5;
int b[maxn], a[maxn * 4];
int n, m;
int main() {
  scanf("%d", &n);
  int big = -1, small = 1e9 + 7;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &b[i]);
    a[i] = b[i];
    big = max(big, a[i]);
    small = min(small, a[i]);
  }
  if (small * 2 >= big) {
    for (int i = 1; i <= n; i++) printf("-1 ");
    printf("\n");
    return 0;
  }
  m = n;
  for (int i = 1; i <= n; i++) a[++m] = b[i];
  for (int i = 1; i <= n; i++) a[++m] = b[i];
  for (int i = 1; i <= n; i++) a[++m] = b[i];
  int j = 1;
  for (int i = 1; i <= n; i++) {
    while (j <= m) {
      int big = s.empty() ? -1 : *s.rbegin();
      if (a[j] * 2 < big) break;
      s.insert(a[j++]);
    }
    s.erase(s.find(a[i]));
    printf("%d ", j - i);
  }
  return 0;
}
