#include <bits/stdc++.h>
using namespace std;
const int SIGMA = 20;
const int MAX = 300010;
const int MAXT = 1048576;
const long long INF = 1000000001;
const long long P = 1000000007;
const double EPS = 1e-6;
const double PI = 3.14159265358979;
int n;
int A[MAX], ans[MAX], firstJ[MAX];
int tree[MAXT];
int prepare(int beg, int end, int node) {
  if (beg == end) return tree[node] = end;
  int mid = (beg + end) / 2;
  int leftMin = prepare(beg, mid, node * 2 + 1);
  int rightMin = prepare(mid + 1, end, node * 2 + 2);
  if (A[leftMin] < A[rightMin]) return tree[node] = leftMin;
  return tree[node] = rightMin;
}
int query(int bq, int eq, int node, int bt, int et) {
  if (bt > eq || et < bq) return -1;
  if (bq <= bt && et <= eq) return tree[node];
  int mid = (bt + et) / 2;
  int leftMin = query(bq, eq, node * 2 + 1, bt, mid);
  int rightMin = query(bq, eq, node * 2 + 2, mid + 1, et);
  if (leftMin == -1) return rightMin;
  if (rightMin == -1) return leftMin;
  return A[leftMin] < A[rightMin] ? leftMin : rightMin;
}
int binarySearch(int i) {
  int beg = i + 1, mid, end = 3 * n - 1, mnJ = -1;
  while (beg <= end) {
    int mid = (beg + end) / 2;
    int j = query(i + 1, mid, 0, 0, 3 * n - 1);
    if (2 * A[j] < A[i]) {
      end = mid - 1;
      mnJ = j;
    } else {
      beg = mid + 1;
    }
  }
  return mnJ;
}
void computeAns() {
  prepare(0, 3 * n - 1, 0);
  for (int i = 0; i < 3 * n; i++) {
    firstJ[i] = binarySearch(i);
  }
  for (int i = 2 * n - 1; i >= 0; i--) {
    if (firstJ[i] == -1) {
      firstJ[i] = firstJ[i + 1];
    } else if (firstJ[i + 1] != -1) {
      firstJ[i] = min(firstJ[i], firstJ[i + 1]);
    }
    ans[i] = firstJ[i] - i;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int mx = 0, mn = INF;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &A[i]);
    A[i + n] = A[i];
    A[i + 2 * n] = A[i];
    mx = max(mx, A[i]);
    mn = min(mn, A[i]);
  }
  if (mx <= 2 * mn) {
    memset(ans, -1, sizeof(ans));
  } else {
    computeAns();
  }
  for (int i = 0; i < n; i++) {
    if (i) printf(" ");
    printf("%d", ans[i]);
  }
  printf("\n");
  return 0;
}
