다각형 나누기

시간 제한2초메모리 제한128 MB

요약
변이 N개인 convex 다각형을 서로 교차하지 않는 대각선으로 잘라 정확히 K개의 다각형으로 나누는 방법의 수를 1000000000으로 나눈 나머지로 구하고, 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
조합론, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

세준이는 서로 구분되는 N개의 꼭짓점을 가진 볼록 다각형을 가지고 있다. 한 번 자를 때는 현재 있는 다각형의 두 꼭짓점을 잇는 선분만 사용할 수 있으며, 그 선분은 하나의 다각형을 정확히 두 개의 다각형으로 나누어야 한다.

볼록 N각형을 정확히 K개의 다각형으로 나누는 방법의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 N과 K가 주어진다.

  • 3 <= N <= 100
  • 1 <= K <= 100

출력

가능한 나누기 방법의 수를 1000000000으로 나눈 나머지를 출력한다.

N각형을 정확히 K개의 다각형으로 나누는 것이 불가능하면 -1을 출력한다.

예제5

  1. 예제 1

    입력
    6 4
    
    예상 출력
    14
    
  2. 예제 2

    입력
    4 2
    
    예상 출력
    2
    
  3. 예제 3

    입력
    100 1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    31 20
    
    예상 출력
    956146480
    
  5. 예제 5

    입력
    3 4
    
    예상 출력
    -1