#include <bits/stdc++.h>
using namespace std;
const int mn = 300005;
int n;
int a[mn], ma, mi = 1e9 + 7;
pair<int, int> b[mn];
int gt[mn], vt[mn];
struct ii {
  int mi, ma;
} it[4 * mn];
int lef[4 * mn], rig[4 * mn];
void built(int x, int l, int r) {
  lef[x] = l;
  rig[x] = r;
  if (l == r) {
    it[x].mi = a[l];
    it[x].ma = a[l];
    return;
  }
  int mid = (l + r) / 2;
  built(2 * x, l, mid);
  built(2 * x + 1, mid + 1, r);
  it[x].ma = max(it[2 * x].ma, it[2 * x + 1].ma);
  it[x].mi = min(it[2 * x].mi, it[2 * x + 1].mi);
}
int getmi(int x, int l, int r) {
  if (l > rig[x] || r < lef[x]) return 1e9 + 7;
  if (l <= lef[x] && rig[x] <= r) return it[x].mi;
  return min(getmi(2 * x, l, r), getmi(2 * x + 1, l, r));
}
int getma(int x, int l, int r) {
  if (l > rig[x] || r < lef[x]) return 0;
  if (l <= lef[x] && rig[x] <= r) return it[x].ma;
  return max(getma(2 * x, l, r), getma(2 * x + 1, l, r));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    ma = max(ma, a[i]);
    mi = min(mi, a[i]);
  }
  if (mi * 2 >= ma) {
    for (int i = 1; i <= n; i++) cout << -1 << " ";
    return 0;
  }
  for (int i = n + 1; i <= 2 * n; i++) a[i] = a[i - n];
  for (int i = 2 * n + 1; i <= 3 * n; i++) a[i] = a[i - n];
  n = n * 3;
  built(1, 1, n);
  n /= 3;
  int j = 2;
  for (int i = 1; i <= n; i++) {
    while (j <= 3 * n + 1 && a[j] * 2 >= getma(1, i, j)) j++;
    cout << j - i << " ";
  }
  return 0;
}
