이진트리 가 있을 때, 의 왼쪽서브트리를 , 오른쪽 서브트리를 로 두면 의 높이 는 다음과 같이 정의된다.
- 가 공백트리(정점의 개수가 인 트리)이면 이다.
- 가 공백트리가 아니면 이다.
음수가 아닌 두 정수 과 가 주어질 때, 정점의 개수가 이고 높이가 인 이진트리는 모두 몇개인지를 결정하는 프로그램을 작성하시오. 예를 들어, 정점의 개수가 이고 높이가 인 이진트리는 아래 보인 그림에서처럼 모두 개가 있다.

입력 형식
첫째 줄에 이진트리 의 정점 개수를 나타내는 정수 ()과 높이를 나타내는 정수 ()가 주어진다.
출력 형식
한 줄로 결과를 출력한다. 정점의 개수가 이고 높이가 인 서로 다른 이진트리 갯수를 찾아 그 값을 로 나눈 나머지를 출력한다.
예제 1
입력
3 2
출력
1
예제 2
입력
4 3
출력
6
예제 3
입력
4 2
출력
0
채점 방식
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 20점
종류 2: 35점
종류 3: 45점
별다른 제약조건 없음.
해설
정점의 개수가 개인 이진 트리의 개수는 정점의 개수가 각각 , 개인 이진트리의 개수들을 알고 있다고 가정하면 계산할 수 있다. 이 아이디어를 통해서 간단한 동적계획법 알고리즘을 만들 수 있다. 이 문제에서는 트리의 높이가 로 고정되어 있으므로 높이가 , , …, 인 경우들을 모두 고려하는 방식으로 계산이 가능하다.