바퀴 그래프의 단일 사이클 부분 그래프 개수

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

요약
크기 m인 바퀴 그래프에서 신장 유니사이클(신장 트리에 간선 하나를 더해 만든 단일 사이클)의 개수를 세어 100007로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

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

문제

크기 nn인 바퀴 그래프(wheel graph)는 nn개의 정수가 사이클을 이루고, 각 정수가 중심 정수와 연결된 그래프이다. 크기 4, 5, 6, 8인 바퀴 그래프의 예는 다음과 같다.

그래프 GG의 신장 단일 사이클(spanning unicycle)은 GG의 신장 트리에 간선 하나를 추가해 사이클 하나를 만든 부분 그래프이다. 다음은 크기 5인 바퀴 그래프의 신장 단일 사이클 예시이다.

크기 nn인 바퀴 그래프에서 서로 다른 단일 사이클의 개수를 구하는 프로그램을 작성하라. 그래프 GG의 두 부분 그래프 S1S_1과 S2S_2는 S1S_1에는 속하지만 S2S_2에는 속하지 않는 GG의 간선이 하나 이상 있거나, S2S_2에는 속하지만 S1S_1에는 속하지 않는 간선이 하나 이상 있으면 서로 다르다.

입력

입력은 한 줄로 주어지며, 단일 사이클의 개수를 구할 바퀴 그래프의 크기를 나타내는 십진 정수 mm이 포함된다. (3≤m≤40003 \le m \le 4000)

출력

한 줄에 입력 크기 mm에 대한 단일 사이클의 개수를 100007100007로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

    입력
    5
    
    예상 출력
    170
    
  2. 예제 2

    입력
    1234
    
    예상 출력
    17511