#include <bits/stdc++.h>
using namespace std;
const int N = 100100;
int n;
int a[N], b[2 * N], rg[2 * N];
pair<int, int> cmins[2 * N];
int main() {
  scanf("%d", &n);
  for (int i = (0); i <= (int(n) - 1); ++i) scanf("%d", &a[i]);
  int mna = a[0], mxa = a[0];
  for (int i = (0); i <= (int(n) - 1); ++i) {
    mxa = max(mxa, a[i]);
    mna = min(mna, a[i]);
  }
  if (mna * 2 >= mxa) {
    for (int i = (0); i <= (int(n) - 1); ++i) printf("-1 ");
    printf("\n");
    return 0;
  }
  int shift = -1;
  for (int i = (0); i <= (int(n) - 1); ++i)
    if (a[i] == mxa) {
      for (int j = (0); j <= (int(2 * n) - 1); ++j) b[j] = a[(i + j) % n];
      shift = i;
      break;
    }
  for (int j = (0); j <= (int(n) - 1); ++j)
    if (b[j] * 2 < b[0]) {
      rg[n] = n + j;
      break;
    }
  cmins[0] = make_pair(b[n - 1], n - 1);
  int cpos = 0;
  for (int j = n - 1; j >= 0; j--) {
    while (cpos >= 0 && b[j] <= cmins[cpos].first) cpos--;
    cpos++;
    cmins[cpos] = make_pair(b[j], j);
    int pos =
        lower_bound(cmins, cmins + cpos + 1, make_pair((b[j] + 1) / 2, -1)) -
        cmins;
    rg[j] = rg[j + 1];
    if (pos > 0) {
      pos--;
      rg[j] = min(rg[j], cmins[pos].second);
    }
  }
  for (int i = n - shift; i < n; i++) printf("%d ", rg[i] - i);
  for (int i = 0; i < n - shift; i++) printf("%d ", rg[i] - i);
  printf("\n");
  return 0;
}
