아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

삼각분할

시간 제한1초메모리 제한32 MB

요약
n과 m이 주어질 때 볼록 다각형의 삼각분할 개수 T_3 + ... + T_n의 합을 m으로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

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

문제

볼록 다각형의 삼각분할이란, 서로 교차하지 않는 대각선들을 이용해 다각형의 내부를 삼각형들로 나누는 것이다. 꼭짓점에는 11번부터 NN번까지 번호가 붙어 있으며, 사용한 대각선의 집합이 서로 다르면 두 삼각분할은 다른 것으로 센다.

예를 들어 오각형을 삼각분할하는 방법은 모두 다섯 가지이다.

볼록 nn각형을 삼각분할하는 방법의 수를 TnT_n이라고 할 때, T3+T4+⋯+TnT_3 + T_4 + \cdots + T_n의 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 두 정수 nn과 mm이 공백으로 구분되어 주어진다. (3≤n≤100 0003 \le n \le 100\,000, 2≤m≤1092 \le m \le 10^9)

출력

T3+T4+⋯+TnT_3 + T_4 + \cdots + T_n을 mm으로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    5 1000
    
    예상 출력
    8
    
  2. 예제 2

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

    입력
    6 1000000000
    
    예상 출력
    22