정사각형의 개수

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

요약
N x N 정사각형의 모서리를 뺀 테두리 바깥에 1 x 1 정사각형을 더 이상 붙일 공간이 없을 때까지 반복해서 붙인 뒤, 완성된 도형에 포함된 i x i 정사각형의 개수 a_i에 대해 a_i * K^i의 합을 1,000,000,007로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
수학, 조합론, 구현
정답자
아직 제출이 없습니다

문제

한 변의 길이가 NN인 정사각형이 있다. 이 정사각형에는 특별한 성질이 있다. 바로 모서리를 제외한 테두리 부분에 1⨯11⨯1 크기의 정사각형이 추가된다는 것이다.

처음에는 N⨯NN⨯N 크기의 정사각형이 존재하며, 모서리를 제외한 테두리 바깥쪽에 1⨯11⨯1 크기의 정사각형들이 덧붙여진다. 이는 1⨯11⨯1 크기의 정사각형이 더 이상 덧붙여질 공간이 없어질 때까지 반복된다. 이해를 돕기 위해 아래 사진을 확인하자.

정사각형의 한 변의 길이 NN이 주어지고 해당 정사각형에서 1⨯11⨯1 크기의 정사각형 생성이 끝난 뒤, 최종 모양에 포함된 i⨯i{i⨯i} 크기의 정사각형의 개수를 a_ia\_i (i=1,2,⋯ ,N)({i}={1, 2, \cdots, N})라고 할 때, a_i⨯Kia\_i⨯K^i의 합을 출력하시오.

입력

첫째 줄에 정수 NN, KK가 공백으로 구분되어 주어진다. (1≤N≤1,000,000;1≤K≤100)(1\le N \le 1\\,000\\,000; 1\le K \le 100)

출력

최종 모양에 포함된 i⨯i{i⨯i} 크기의 정사각형의 개수를 a_ia\_i (i=1,2,⋯ ,N)({i}={1, 2, \cdots, N})라고 할 때, a_i⨯Kia\_i⨯K^i의 합을 1,000,000,0071\\,000\\,000\\,007로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    1 25
    
    예상 출력
    25
    
  2. 예제 2

    입력
    2 9
    
    예상 출력
    117
    
  3. 예제 3

    입력
    1000000 5
    
    예상 출력
    404223949