만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도망친 게 아니라, 빛이 드는 곳으로 갔을 뿐이야

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

요약
p를 n으로 설정한 기계에 1 이상 p^q 미만의 정수를 넣었을 때 출력이 r이 되는 수의 개수를 1,000,000,009로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

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

문제

"도망친 게 아니야. 빛을 찾아간 거야."

우정 2관 사감실에 있는 특별한 기계를 아는가? 이 기계에 nn에 해당하는 값을 설정하고 수를 입력하면, 아래 순서도에 따라 수를 출력한다.

예를 들어, 기계의 nn을 33으로 설정하고 입력값을 731731로 넣어 보자. 기계는 다음과 같이 동작한다.

  1. 731731을 33으로 나누면 약 243.67(=x)243.67(=x)이다. xx는 정수가 아니므로 반올림하면 244244이다.
  2. 기계의 aa 값이 244244로 바뀐다.
  3. 244244를 33으로 나누면 약 81.33(=x)81.33(=x)이다. xx는 정수가 아니므로 반올림하면 8181이다.
  4. 기계의 aa 값이 8181로 바뀐다.
  5. 8181을 33으로 나누면 27(=x)27(=x)이다. xx는 정수이므로 aa는 2727로 바뀌고, 그 값이 출력된다.
  6. 기계의 동작이 종료된다.

따라서 이 설정과 입력값에서는 2727이 출력된다.

똑똑한 경곽이는 양의 정수 pp, qq, rr을 생각하고, 기계의 nn을 pp로 설정하기로 했다. 그리고 11 이상 pqp^q 미만의 정수 중에서, 위 기계에 입력했을 때 유한 번의 연산 안에 동작이 끝나고 출력값이 rr이 되는 수의 개수가 궁금해졌다. 경곽이가 모든 수를 직접 넣어 보기 전에, 그 개수를 구하는 것을 도와주자.

입력

첫 번째 줄에 pp, qq, rr이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에, 유한 번의 연산 안에 기계의 동작이 끝나면서 출력값이 rr이 되는 수의 개수를 1,000,000,0091,000,000,009로 나눈 나머지를 출력한다. (1,000,000,0071,000,000,007이 아님에 유의하라)

제한

  • 2≤p≤1062\le{p}\le10^6, 1≤q≤1061\le{q}\le10^6, 0≤r≤1090\le{r}\le10^9이다.
  • pp, qq, rr은 음이 아닌 정수이다.

힌트

  • 반올림은 다음과 같이 정의한다. 어떤 수 xx를 반올림하여 yy가 되었다면, yy는 xx와의 차가 가장 작은 정수들 중 최댓값이다.
  • 차는 다음과 같이 정의한다. xx와 yy의 차는 x−yx-y와 y−xy-x 중 작지 않은 쪽의 수이다.

예제1

  1. 예제 1

    입력
    4 7 0
    
    예상 출력
    2551