Mike Sees The Storm (Large)

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

요약
0에서 시작해 +1을 N번, -1을 N번 수행하는 모든 수열에 대해 각 수열의 최댓값을 K제곱한 값의 합을 구한다.
난이도

어려움10점 중 8점

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

문제

Mike가 보고 있는 칠판에는 00이 적혀 있다. Mike는 다음과 같은 두 가지의 동작 중 하나를 선택해 반복하면서 수열을 얻고자 한다.

  • 칠판에 쓰인 숫자가 aa라 하면, 이를 지우고 a+1a+1을 쓴다.
  • 칠판에 쓰인 숫자가 aa라 하면, 이를 지우고 a−1a-1을 쓴다.

두 가지 동작의 순서는 상관없지만, 각각의 동작을 NN번씩 수행해야 한다. 이때, 칠판에 쓰는 숫자를 순서대로 원소로 하는 수열을 A_1,A_2,⋯ ,A_2NA\_{1}, A\_{2}, \cdots, A\_{2N}이라고 하자.

Mike가 진행할 수 있는 모든 순서에 대해 얻어낸 수열들 각각의 최댓값을 KK제곱한 합을 구해보자.

이때, 답이 커질 수 있으므로 소수 1 000 000 0071\ 000\ 000\ 007로 나눈 나머지를 계산하여라.

입력

입력 첫 줄에 음이 아닌 정수 NN과 KK가 주어진다. (1≤N≤1 000 0001 \leq N \leq 1\ 000\ 000, 1≤K≤500 0001 \leq K \leq 500\ 000)

출력

Mike가 얻을 수 있는 모든 수열들 각각의 최댓값을 KK제곱한 합을 출력하여라.

예제2

  1. 예제 1

    입력
    2 2
    
    예상 출력
    7
    
  2. 예제 2

    입력
    1000000 500000
    
    예상 출력
    809476062