output_description: For each k=1, 2, ..., N-1 in this order, print a line containing the answer to
  the problem.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N X Y
attempt: import math
  
  str = input()
  num = int(str.split()[0])
  x = int(str.split()[1])
  y = int(str.split()[2])
  
  # グループ分けしてそれぞれで一列に並べてみる
  #        ↓group3
  #       ○○○○...○
  # ○○○...○        ○○○○...○
  # ↑ group1       ↑group2
  
  group_1 = x
  group_3 = y - x - 1
  group_2 = num - y + 1
  
  for n in range(1, num):
      branch = 0
      # group_1 の枝
      if group_1 > n:
          branch += group_1 - n
      # group_2 の枝
      if group_2 > n:
          branch += group_2 - n
      # group_3 の枝
      if group_3 > n:
          branch += group_3 - n
      # group_1,2 の枝
      if group_1 >= n and group_2 >= n:
          branch += n
      elif group_1 + group_2 >= n + 1:
          if n < max(group_1, group_2):
              branch += min(group_1, group_2)
          else:
              branch += group_1 + group_2 - n
      # group_1,3 の枝
      if group_1 >= n and math.ceil(group_3 / 2) >= n:
          branch += n
      elif group_1 + math.ceil(group_3 / 2) >= n + 1:
          if n < max(group_1, math.ceil(group_3 / 2)):
              branch += min(group_1, math.ceil(group_3 / 2))
          else:
              branch += group_1 + math.ceil(group_3 / 2) - n
      # group_2,3 の枝
      if group_2 >= n and math.ceil(group_3 / 2) >= n:
          branch += n
      elif group_2 + math.ceil(group_3 / 2) >= n + 1:
          if n < max(group_2, math.ceil(group_3 / 2)):
              branch += min(group_2, math.ceil(group_3 / 2))
          else:
              branch += group_2 + math.ceil(group_3 / 2) - n
      # group_1,3 の枝 2を経由
      if group_1 >= n and math.floor(group_3 / 2) >= n - 1 and n >= 2:
          branch += n - 1
      elif (group_1 + math.floor(group_3 / 2) >= n) and n >= 2:
          if n <= max(group_1, math.floor(group_3 / 2)):
              branch += min(group_1, math.floor(group_3 / 2))
          else:
              branch += group_1 + math.floor(group_3 / 2) + 1 - n
      # group_2,3 の枝 1を経由
      if group_2 >= n and math.floor(group_3 / 2) >= n - 1 and n >= 2:
          branch += n - 1
      elif (group_2 + math.floor(group_3 / 2) >= n) and n >= 2:
          if n <= max(group_2, math.floor(group_3 / 2)):
              branch += min(group_2, math.floor(group_3 / 2))
          else:
              branch += group_2 + math.floor(group_3 / 2) + 1 - n
  
      print(branch)
  
problem_description: Statement
  
  We have an undirected graph G with N vertices numbered 1 to N and N edges as
  follows:
  
    * For each i=1,2,...,N-1, there is an edge between Vertex i and Vertex i+1.
    * There is an edge between Vertex X and Vertex Y.
  
  For each k=1,2,...,N-1, solve the problem below:
  
    * Find the number of pairs of integers (i,j) (1 \leq i < j \leq N) such that the shortest distance between Vertex i and Vertex j in G is k.
samples: [{"input": "5 2 4", "output": "5\n    4\n    1\n    0\n    \n\nThe graph in this input is as follows:  \n  \n![Figure](https://img.atcoder.jp/ghi/3ae0885a4aeda99694b9fde4efe39dc1.png)  \n  \nThere are five pairs (i,j) (1 \\leq i < j \\leq N) such that the shortest\ndistance between Vertex i and Vertex j is 1:\n(1,2)\\,,(2,3)\\,,(2,4)\\,,(3,4)\\,,(4,5).  \nThere are four pairs (i,j) (1 \\leq i < j \\leq N) such that the shortest\ndistance between Vertex i and Vertex j is 2: (1,3)\\,,(1,4)\\,,(2,5)\\,,(3,5).  \nThere is one pair (i,j) (1 \\leq i < j \\leq N) such that the shortest distance\nbetween Vertex i and Vertex j is 3: (1,5).  \nThere are no pairs (i,j) (1 \\leq i < j \\leq N) such that the shortest distance\nbetween Vertex i and Vertex j is 4.\n\n* * *"}, {"input": "3 1 3", "output": "3\n    0\n    \n\nThe graph in this input is as follows:  \n  \n![Figure](https://img.atcoder.jp/ghi/be2921b3b307fc993a390a59437e624e.png)  \n  \n\n* * *"}, {"input": "7 3 7", "output": "7\n    8\n    4\n    2\n    0\n    0\n    \n\n* * *"}, {"input": "10 4 8", "output": "10\n    12\n    10\n    8\n    4\n    1\n    0\n    0\n    0"}]