#include <bits/stdc++.h>
using namespace std;
const int _ = 1e2;
const int maxn = 1e5 + _;
const int mod = 998244353;
int a[maxn], aa[maxn], as[maxn];
int top, sta[maxn], d[maxn];
int main() {
  int n, xp = 0, np = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &aa[i]);
    if (aa[xp] <= aa[i]) xp = i;
    if (aa[np] >= aa[i]) np = i;
  }
  if (aa[xp] <= aa[np] * 2) {
    for (int i = 1; i <= n; i++) printf("-1 ");
    return 0;
  }
  for (int i = 0; i < n; i++) a[(i + n - 1 - xp) % n] = aa[i];
  for (int i = 0; i < n; i++)
    if (a[i] * 2 < a[n - 1]) {
      as[n - 1] = i + 1;
      break;
    }
  int p = n - 1;
  sta[top = 1] = n - 1, d[top] = a[n - 1];
  for (int i = n - 2; i >= 0; i--) {
    int dis = (1 << 30);
    int x = upper_bound(d + 1, d + top + 1, (a[i] - 1) / 2) - d - 1;
    if (x) dis = (sta[x] - i + n) % n;
    if (dis < (p - i + n) % n + as[p])
      p = i, as[i] = dis;
    else
      as[i] = (p - i + n) % n + as[p];
    while (top != 0 && d[top] >= a[i]) top--;
    sta[++top] = i, d[top] = a[i];
  }
  for (int i = 0; i < n; i++) printf("%d ", as[(i + n - 1 - xp) % n]);
  return 0;
}
