#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <map>
#include <vector>
#include <cstring>
#include <iomanip>

#define m_p make_pair
#define fi first
#define se second

typedef long long ll;
const int MAXINT=2147483640;
const ll MAXLL=9223372036854775800;
const ll MAXN=1000000;
const double pi=3.1415926535897932384626433832795;
using namespace std;

int x[MAXN*2], a[MAXN*2];
int main()
{
    int n, i, j;
    scanf("%d\n", &n);
    for (i=1; i<=n; i++) x[i]=i-1;
    for (i=1; i<=n; i++) scanf("%d", &a[i]);

    for (j=1; j<=50000000/n; j++){
        for (i=1; i<=n; i++){
            x[i+1]=min(x[i+1], x[i]+1);
            x[a[i]]=min(x[a[i]], x[i]+1);
        }
        for (i=n; i>1; i--){
            x[i-1]=min(x[i-1], x[i]+1);
            x[a[i]]=min(x[a[i]], x[i]+1);
        }
    }
    for (i=1; i<=n; i++){
        cout << x[i];
        if (i != n) cout << " "; else cout << endl;
    }
    return 0;
}