문제 I: (3n + 1) 문제 #3

문제 I: (3n + 1) 문제 #3

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 99  통과: 18
[제출] [채점기록] [묻고답하기] [만든사람:]

문제 설명

임의의 양의 정수 n에 대하여 그 값이 홀수이면 3*n+1로 계산하고, 짝수이면 2로 나누는 과정을 결과값이 1이 될 때까지 반복할 경우 n부터 1이 될 때까지 생성된 수열의 길이(항의 개수)를 m이라고 하자.
예를 들어, n이 22인 경우 이 규칙에 따라 생성되는 수열은 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 이며 이때 m은 16이 된다.
임의의 양의 정수 a, b가 주어질 때 그 사이에 존재하는 모든 정수 n에 대한 수열의 길이 m들 중에 가장 큰 값과 그 값을 산출한 n이 무엇인지를 함께 출력하는 프로그램을 작성해 보자. 만약 수열의 최대 길이가 동일한 n이 2개 이상 존재할 경우에는 가장 작은 n을 출력한다.

입력 설명

첫 줄에 테스트케이스의 수 t가 입력된다.(1 <= t <= 10)
그 다음 줄부터 t줄만큼 양의 정수 a, b가 입력된다.(1 <= a, b <= 100,000)

출력 설명

각 테스트케이스에 대하여 a, b 사이의 정수(a, b 포함)들 중 수열의 최대 길이 m을 생성하는 최소의 n 값과 m값을 한 줄씩 출력한다.

입력 예시 Copy

2
1 10
100 200

출력 예시 Copy

9 20
171 125