만드는 중입니다

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

거듭제곱 함수

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

요약
f를 m번 적용한 결과가 1이 되는 n이 l 이상 r 이하에 있을 때, 가능한 최대 m과 그 m에서의 최소 n, 최대 n을 구합니다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 그리디
정답자
아직 제출이 없습니다

문제

Bob에게 정의역이 음이 아닌 정수인 함수가 있다.

f(n)={nkif n mod k=0n−1otherwisef(n) = \begin{cases} \frac{n}{k} & \text{if } n \bmod k = 0 \\ n - 1 & \text{otherwise} \end{cases}

mm제곱 함수 fm(n)f^m(n)은 다음과 같이 정의한다.

fm(n)={fm−1(f(n))if m>0notherwisef^m(n) = \begin{cases} f^{m-1}(f(n)) & \text{if } m > 0 \\ n & \text{otherwise} \end{cases}

Bob은 l≤n≤rl \le n \le r을 만족하는 정수 nn이 적어도 하나 있고 fm(n)=1f^m(n) = 1이 되는 최대의 정수 mm을 알고 싶어 한다. 또한 이 최대 mm에 대해 fm(n)=1f^m(n) = 1을 만족하는 nn의 최솟값과 최댓값도 구하려 한다. 답을 쉽게 검증할 수 있도록 하기 위해서다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 정수 kk, ll, rr이 한 줄에 주어진다.

출력

각 테스트 케이스마다 "Case #x: m a b" 형식으로 한 줄씩 출력한다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, mm은 가능한 최대 지수, aa는 그 mm에 대해 가능한 nn의 최솟값, bb는 최댓값이다.

제한

  • 1≤T≤3×1051 \le T \le 3 \times 10^5
  • 2≤k≤10182 \le k \le 10^{18}
  • 1≤l≤r≤10181 \le l \le r \le 10^{18}
  • 각 테스트 케이스마다 해가 존재함이 보장된다.

힌트

k=2k = 2일 때 {f(n)}n=0∞={0,0,1,2,2,4,3,6,4,8,… }\{f(n)\}_{n=0}^{\infty} = \{0, 0, 1, 2, 2, 4, 3, 6, 4, 8, \dots\}이고, {f2(n)}n=0∞={0,0,0,1,1,2,2,3,2,4,… }\{f^2(n)\}_{n=0}^{\infty} = \{0, 0, 0, 1, 1, 2, 2, 3, 2, 4, \dots\}이다.

예제1

  1. 예제 1

    입력
    5
    2 1 1
    2 1 2
    2 1 4
    2 998244353 998244354
    10 998244353 998244354
    
    예상 출력
    Case #1: 0 1 1
    Case #2: 1 2 2
    Case #3: 2 3 4
    Case #4: 35 998244353 998244354
    Case #5: 55 998244354 998244354