#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int n, w, W[maxn], S[maxn];
int main() {
  while (scanf("%d", &n) != EOF) {
    for (int i = 0; i < n; i++) {
      scanf("%d", &w);
      S[w - 1] = i;
    }
    set<pair<int, int> > P, Q;
    for (int i = 0; i < n; i++) {
      scanf("%d", &w);
      W[i] = --w;
      if (S[w] < i)
        P.insert(make_pair(i - S[w], w));
      else
        Q.insert(make_pair(S[w] - i, w));
    }
    for (int i = 0; i < n; i++) {
      int ans = maxn;
      if (!P.empty()) {
        ans = min(ans, P.begin()->first - i);
      }
      if (!Q.empty()) {
        ans = min(ans, Q.begin()->first + i);
      }
      printf("%d\n", ans);
      while (!P.empty()) {
        int d = P.begin()->first - i;
        int e = P.begin()->second;
        if (d == 0) {
          P.erase(P.begin());
          Q.insert(make_pair(-i, e));
        } else
          break;
      }
      int s = W[i];
      Q.erase(Q.find(make_pair(S[s] - i, s)));
      P.insert(make_pair(n - S[s] + i, s));
    }
  }
  return 0;
}
