#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 7;
int a[N], n, m, i, j;
multiset<int> s;
int main() {
  for (scanf("%d", &n), i = 1; i <= n; ++i)
    scanf("%d", a + i), a[n * 2 + i] = a[n + i] = a[i];
  if (*max_element(a + 1, a + n + 1) <= *min_element(a + 1, a + n + 1) * 2) {
    for (i = 1; i <= n; ++i) printf("%d ", -1);
    puts("");
    return 0;
  }
  for (j = i = 1; i <= n; ++i) {
    while (j <= 3 * n && (s.size() == 0 || *s.rbegin() <= 2 * a[j]))
      s.insert(a[j++]);
    printf("%d ", s.size());
    s.erase(s.lower_bound(a[i]));
  }
}
