#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int n, a[maxn], b[maxn], posa[maxn], dis[maxn];
priority_queue<pair<int, int> > L;
priority_queue<pair<int, int>, vector<pair<int, int> >,
               greater<pair<int, int> > >
    R;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", a + i);
    posa[a[i]] = i;
  }
  for (int i = 1; i <= n; ++i) {
    scanf("%d", b + i);
    dis[b[i]] = posa[b[i]] - i;
    if (dis[b[i]] < 0)
      L.push(make_pair(dis[b[i]], b[i]));
    else
      R.push(make_pair(dis[b[i]], b[i]));
  }
  for (int i = 0; i < n; ++i) {
    while (!L.empty() && L.top().first + i == 0) {
      R.push(L.top());
      L.pop();
    }
    while (!R.empty() && R.top().first + i >= posa[R.top().second]) R.pop();
    int ret = n;
    if (!L.empty() && ret > -L.top().first - i) {
      ret = -L.top().first - i;
    }
    if (!R.empty() && ret > R.top().first + i) {
      ret = R.top().first + i;
    }
    printf("%d\n", ret);
    L.push(make_pair(posa[b[i + 1]] - n - i - 1, b[i + 1]));
  }
  return 0;
}
