#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int dp[1000005][30];
int n;
void rmqinit() {
  for (int j = 1; (1 << j) <= 3 * n; j++) {
    for (int i = 1; i + (1 << j) <= 3 * n + 1; i++) {
      dp[i][j] = max(dp[i][j - 1], dp[i + (1 << (j - 1))][j - 1]);
    }
  }
}
int rmqmax(int l, int r) {
  int k = log(r - l + 1) / log(2);
  return max(dp[l][k], dp[r - (1 << k) + 1][k]);
}
int main() {
  scanf("%d", &n);
  int ma = -1, mi = 1e9;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    a[i + n] = a[i];
    a[i + 2 * n] = a[i];
    dp[i][0] = a[i];
    dp[i + n][0] = a[i];
    dp[i + 2 * n][0] = a[i];
    ma = max(ma, a[i]);
    mi = min(mi, a[i]);
  }
  if (mi * 2 >= ma) {
    for (int i = 0; i < n; i++) {
      printf("-1 ");
    }
    printf("\n");
  } else {
    rmqinit();
    int pos = 0;
    int maxx = a[0];
    for (int i = 0; i < n; i++) {
      while (maxx <= 2 * a[pos]) {
        pos++;
        maxx = max(maxx, a[pos]);
      }
      maxx = rmqmax(i + 1, pos);
      printf("%d ", pos - i);
    }
    printf("\n");
  }
  return 0;
}
