Buggy python submission (verdict: Time Limit Exceeded):
N, X, Y = map(int, input().split())

ans = [0] * N

X -= 1
Y -= 1
for i in range(N):
    for j in range(i+1, N):
        distance = abs(i-j)
        # X Y i j
        if Y <= i:
            pass
        # i j X Y
        elif j <= X:
            pass
        # X i Y j
        elif X <= i < Y <= j:
            dis = (i-X) + 1 + (j-Y)
            distance = min(distance, dis)
        # i X j Y
        elif i <= X < j <= Y:
            dis = (X-i) + 1 + (Y-j)
            distance = min(distance, dis)
        # i X Y j
        elif i <= X < Y <= j:
            dis = (X-i) + 1 + (j-Y)
            distance = min(distance, dis)
        # X i j Y
        elif X <= i < j <= Y:
            dis = (i-X) + 1 + (Y-j)
            distance = min(distance, dis)

        ans[distance] += 1

for k in range(1, N):
    print(ans[k])


Fixed submission:
N, X, Y = map(int, input().split())

ans = [0] * N

X -= 1
Y -= 1
for i in range(N):
    for j in range(i+1, N):
        distance = min(abs(i-j), abs(i-X) + 1 + abs(j-Y))
        ans[distance] += 1

for k in range(1, N):
    print(ans[k])

Buggy python submission (verdict: Time Limit Exceeded):
N, X, Y = map(int, input().split())

distance = [[abs(i-j) for j in range(N)] for i in range(N)]
ans = [0] * N

X -= 1
Y -= 1
for i in range(N):
    for j in range(i+1, N):
        # X Y i j
        if Y <= i:
            pass
        # i j X Y
        elif j <= X:
            pass
        # X i Y j
        elif X <= i < Y <= j:
            dis = (i-X) + 1 + (j-Y)
            distance[i][j] = min(distance[i][j], dis)
        # i X j Y
        elif i <= X < j <= Y:
            dis = (X-i) + 1 + (Y-j)
            distance[i][j] = min(distance[i][j], dis)
        # i X Y j
        elif i <= X < Y <= j:
            dis = (X-i) + 1 + (j-Y)
            distance[i][j] = min(distance[i][j], dis)
        # X i j Y
        elif X <= i < j <= Y:
            dis = (i-X) + 1 + (Y-j)
            distance[i][j] = min(distance[i][j], dis)

        ans[distance[i][j]] += 1

for k in range(1, N):
    print(ans[k])


Fixed submission:
N, X, Y = map(int, input().split())

ans = [0] * N

X -= 1
Y -= 1
for i in range(N):
    for j in range(i+1, N):
        distance = min(abs(i-j), abs(i-X) + 1 + abs(j-Y))
        ans[distance] += 1

for k in range(1, N):
    print(ans[k])

Buggy python submission (verdict: Runtime Error):
N, X, Y = map(int, input().split())

graph = [[False for _ in range(N)] for _ in range(N)]
for i in range(N-1):
    graph[i][i+1] = graph[i+1][i] = True
graph[X-1][Y-1] = graph[Y-1][X-1] = True

ans = [0] * N

def dfs(pos, goal, cnt, visited):
    ans = N
    for i in range(N):
        if not graph[pos][i]: continue
        if visited[i]: continue

        if i == goal:
            return cnt + 1

        visited[i] = True
        ret = dfs(i, goal, cnt + 1, visited)
        if ret is not None:
            ans = min(ans, ret)
        visited[i] = False

    if ans == N:
        return None
    else:
        return ans

visited = [False] * N
for i in range(N):
    for j in range(i+1, N):
        distance = dfs(i, j, 0, visited)
        if distance is not None:
            ans[distance] += 1

for k in range(1, N):
    print(ans[k])


Fixed submission:
N, X, Y = map(int, input().split())

ans = [0] * N

X -= 1
Y -= 1
for i in range(N):
    for j in range(i+1, N):
        distance = min(abs(i-j), abs(i-X) + 1 + abs(j-Y))
        ans[distance] += 1

for k in range(1, N):
    print(ans[k])