#include <bits/stdc++.h>
using namespace std;
const int inf = 100000000;
const double eps = 1e-12;
multiset<int> st;
multiset<int>::iterator it;
int a[200000], b[200000], p[200000], i, n, ot[200000];
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    p[a[i]] = i;
  }
  for (i = 1; i <= n; i++) {
    scanf("%d", &b[i]);
    st.insert(i - p[b[i]]);
  }
  st.insert(-inf);
  for (i = 0; i < n; i++) {
    int ans;
    it = st.lower_bound(-i);
    ans = abs(i + *it);
    if (it != st.begin()) {
      it--;
      ans = min(ans, abs(i + *it));
    }
    ot[i] = ans;
    it = st.lower_bound((n - i) - p[b[n - i]]);
    st.erase(it);
    st.insert((n - i) - p[b[n - i]] - n);
  }
  printf("%d\n", ot[0]);
  for (i = n - 1; i >= 1; i--) printf("%d\n", ot[i]);
  return 0;
}
