#include <bits/stdc++.h>
using namespace std;
multiset<int> ms;
const int MAXN = 1000000;
int pos[MAXN], a[MAXN], b[MAXN], st[MAXN];
int n, i, j, k, ans;
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; ++i) {
    scanf("%d", &a[i]);
    pos[a[i]] = i;
  }
  for (j = 1; j <= n; ++j) {
    scanf("%d", &b[j]);
    int diff = j - pos[b[j]];
    st[j] = diff;
    ms.insert(diff);
  }
  for (i = 0; i < n; ++i) {
    ans = n;
    multiset<int>::iterator it = ms.lower_bound(i);
    if (it != ms.end()) ans = min(ans, abs(*(it)-i));
    if (it != ms.begin()) ans = min(ans, abs(*(--it) - i));
    cout << ans << endl;
    ms.erase(ms.find(st[i + 1]));
    int num = b[i + 1];
    ms.insert((i + n + 1) - pos[num]);
  }
}
