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

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

양 한 마리... 양 A마리... 양 A제곱마리...

면접 대비

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

요약
B가 최대 10^12일 때 1 + A + A^2 + ... + A^(B-1)을 1,000,000,007로 나눈 나머지를 구한다.
난이도

보통10점 중 6점

유형
수학, 정수론, 분할 정복, 비트 연산
정답자
아직 제출이 없습니다

문제

(잠이 안 오는 춘배의 모습)

춘배는 오늘도 열심히 활동을 마친 후 자려 하지만 도저히 잠이 안 온다. 춘배는 잠을 자기 위해 자신만의 방법으로 양을 세려는데 한 마리씩 세지 않고 여러 마리를 한꺼번에 세면서 자려 한다.

춘배는 일단 양의 정수 AA를 정한다. 그 후 양을 셀 때 첫 번째에 센 양의 수는 항상 11로 두고, 그 뒤 두 번째에 센 양의 수는 AA, 세 번째에 센 양의 수는 A2A^{2} 이렇게 점점 양의 수를 세어 간다. 즉, nn번째에 센 양의 수는 An−1A^{n-1} 가 된다.

춘배는 이러한 방식으로 양을 세다 문득 자신이 첫 번째부터 BB번째까지 센 모든 양의 수가 얼마나 될지 궁금해졌다. 춘배를 위해 첫 번째부터 마지막 BB번째까지 센 모든 양의 수가 몇 마리인지 구해보자! 하지만 수가 너무 커질 수 있기에 1,000,000,007(=109+7)1\\,000\\,000\\,007(= 10^{9} + 7)로 나눈 나머지를 구하자.

입력

첫 번째 줄에 양의 정수 AA, BB 가 공백으로 구분되어 주어진다. (1≤A≤1,000(1 \le A \le 1\\,000, 1≤B≤1012) 1 \le B \le 10^{12})

출력

첫 번째부터 BB번째까지 센 모든 양의 수를 1,000,000,0071\\,000\\,000\\,007로 나눈 나머지를 출력한다.

힌트

춘배는 똑똑해서 1,000,000,0071\\,000\\,000\\,007이 소수란 걸 알고있다.

예제1

  1. 예제 1

    입력
    3 4
    
    예상 출력
    40