높이 H인 D차원 파스칼 초피라미드의 밑면에 나타나는 서로 다른 값을 오름차순으로 출력한다.
보통7동적 계획법조합론수학해시맵아직 제출이 없습니다시간 제한2초메모리 제한512 MB파스칼의 삼각형은 맨 위에 1이 놓이고, 나머지 수는 바로 위에 있는 두 수의 합이다. 양 끝의 수는 항상 1이다. 이 규칙은 삼각형을 왼쪽으로 맞춰 그리면 프로그램으로 다루기 쉽다. 이렇게 그리면 맨 왼쪽 열과 맨 위 행은 모두 1이고, 나머지 수는 바로 위의 수와 바로 왼쪽의 수를 더한 값이다. 아래 그림에서 굵게 표시한 수가 높이 5인 파스칼 삼각형의 밑면이다.

파스칼의 초피라미드는 이 규칙을 더 높은 차원으로 확장한다. 3차원에서 위치 (x,y,z)의 값은 최대 세 값의 합이다.
꼭대기 (0,0,0)의 값은 1이다. 아래 그림은 높이 5인 3차원 피라미드를 z 값을 하나씩 고정한 평면 단면으로 보여 준다.

예를 들어 위치 x=1, y=2, z=1의 수는 (0,2,1), (1,1,1), (1,2,0)의 값을 더한 3+6+3=12이다. 피라미드의 밑면은 x+y+z=4인 위치가 이루는 평면이고, 위 그림에서 굵게 표시한 부분이다.
D차원에서도 규칙은 같다. 꼭대기 (0,0,…,0)의 값은 1이고, 다른 위치 (x1,x2,…,xD)의 값은 좌표 하나를 1 줄여서 얻는 위치들의 값을 모두 더한 값이다. 이미 0인 좌표는 줄이지 않고 넘어간다. 높이 H인 초피라미드의 밑면은 x1+x2+⋯+xD=H−1을 만족하는 위치의 집합이다.
한 층의 크기는 피라미드의 높이에 대해 이차로 커지지만, 대칭 때문에 같은 값이 많이 나온다. 서로 순서만 바꾼 위치는 같은 수를 가진다. 예를 들어 위 그림의 (0,1,2), (1,2,0), (2,1,0)은 모두 3이다.
차원 수 D와 높이 H가 주어질 때, 초피라미드 밑면에 놓인 수의 집합을 구하는 프로그램을 작성하시오.
첫째 줄에 차원 수 D와 초피라미드의 높이 H가 양의 정수로 주어진다.
초피라미드 밑면에 놓인 수를 중복 없이, 한 줄에 하나씩, 증가하는 순서로 출력한다.