#include <bits/stdc++.h>
using namespace std;
int n, a[100042], b[100042], onInd[1000042];
int k = 17;
struct v {
  int minV, sV;
} it[2][1000042];
int gt(int t) { return t == 1 ? 1 : -1; }
void handle(int ind, int s, int t) {
  it[t][ind].minV = min(it[t][ind].minV, it[t][ind].sV);
  it[t][ind].minV = min(it[t][ind].minV, it[t][ind].sV + s * gt(t));
  if (s > 1) {
    it[t][ind * 2].sV = min(it[t][ind * 2].sV, it[t][ind].sV);
    it[t][ind * 2 + 1].sV =
        min(it[t][ind * 2 + 1].sV, it[t][ind].sV + gt(t) * s / 2);
  }
}
void add(int s, int f, int ss, int ff, int ind, int v, int t) {
  handle(ind, f - s, t);
  if (f <= ss || ff <= s) {
    return;
  }
  if (ss <= s && f <= ff) {
    it[t][ind].sV = min(v + gt(t) * (s - ss), it[t][ind].sV);
    it[t][ind].minV = min(it[t][ind].sV, it[t][ind].minV);
    it[t][ind].minV = min(it[t][ind].sV + gt(t) * (f - s), it[t][ind].minV);
    return;
  }
  add(s, (s + f) / 2, ss, ff, ind * 2, v, t);
  add((s + f) / 2, f, ss, ff, ind * 2 + 1, v, t);
  it[t][ind].minV = min(it[t][ind * 2].minV, it[t][ind * 2 + 1].minV);
}
void handleAll(int s, int f, int ind, int t) {
  handle(ind, f - s, t);
  if (f - s == 1) {
    return;
  }
  handleAll(s, (s + f) / 2, ind * 2, t);
  handleAll((s + f) / 2, f, ind * 2 + 1, t);
}
int sum[1000042];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  for (int i = 0; i < (1 << k + 1); i++) {
    it[0][i].minV = 1 << 20;
    it[0][i].sV = 1 << 20;
    it[1][i].minV = 1 << 20;
    it[1][i].sV = 1 << 20;
  }
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  reverse(a, a + n);
  for (int i = 0; i < n; i++) {
    cin >> b[i];
    onInd[a[i]] = i;
  }
  reverse(b, b + n);
  for (int i = 0; i < n; i++) {
    int i1 = i, i2 = onInd[b[i]];
    if (i1 >= i2) {
      add(0, (1 << k), 0, n - i1, 1, i1 - i2, 1);
      add(0, (1 << k), n - i1, n - i1 + 1 + i2, 1, i2 + 1, 0);
      add(0, (1 << k), n - i1 + i2 + 1, n, 1, 1, 1);
    } else {
      add(0, (1 << k), 0, i2 - i1, 1, i2 - i1 + 1, 0);
      add(0, (1 << k), i2 - i1, n - i1, 1, 0, 1);
      add(0, (1 << k), n - i1, n, 1, i2 + 1, 0);
    }
  }
  handleAll(0, (1 << k), 1, 0);
  handleAll(0, (1 << k), 1, 1);
  for (int j = 0; j < n; j++) {
    cout << min(it[0][(1 << k) + j].minV, it[1][(1 << k) + j].minV) << "\n";
  }
  return 0;
}
