화장실 칸 고르기

K명이 비어 있는 구간을 규칙에 따라 나눠 앉을 때, 마지막으로 앉은 사람이 고른 자리의 좌우 빈 칸 수를 구한다.

보통7그리디수학시뮬레이션면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

어떤 화장실에는 칸이 한 줄로 N+2N + 2개 있다. 양쪽 끝 두 칸은 관리인이 계속 쓰고 있어서 절대 비지 않고, 나머지 NN개를 이용자가 쓴다.

화장실에 들어온 사람은 다른 사람과 최대한 멀리 떨어진 칸을 고른다. 고르는 방법은 다음과 같이 정해져 있다. 비어 있는 칸 SS마다 두 값 LSL_SRSR_S를 구한다. LSL_SSS의 왼쪽에서 가장 가까운 사용 중인 칸까지 사이에 있는 빈 칸의 수이고, RSR_S는 오른쪽으로 잰 같은 값이다. 먼저 min(LS,RS)\min(L_S, R_S)가 가장 큰 칸만 남긴다. 그런 칸이 하나뿐이면 그 칸을 고르고, 여럿이면 그중 max(LS,RS)\max(L_S, R_S)가 가장 큰 칸을 고른다. 그래도 여럿 남으면 가장 왼쪽 칸을 고른다.

KK명이 차례로 들어온다. 한 사람이 칸을 고른 뒤에 다음 사람이 들어오고, 아무도 나가지 않는다.

마지막 KK번째 사람이 고른 칸 SS에 대해 max(LS,RS)\max(L_S, R_S)min(LS,RS)\min(L_S, R_S)를 구하라.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 다음 TT개의 줄에 테스트 케이스가 한 줄에 하나씩 주어지며, 각 줄에는 두 정수 NNKK가 주어진다.

제한

  • 1T1001 \le T \le 100
  • 1KN1 \le K \le N
  • 1N1061 \le N \le 10^6

출력

각 테스트 케이스마다 Case #x: y z 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호, yy는 마지막 사람이 고른 칸 SSmax(LS,RS)\max(L_S, R_S), zz는 같은 칸의 min(LS,RS)\min(L_S, R_S)이다.

힌트

첫 번째 테스트 케이스에서는 첫 사람이 가운데 두 칸 중 왼쪽 칸에 들어가 O.O..O가 된다. O는 사용 중인 칸, .은 빈 칸이다. 마지막 사람인 두 번째 사람은 그 바로 오른쪽 칸에 들어가므로 한쪽에는 빈 칸이 1개, 반대쪽에는 0개 남는다.

두 번째 테스트 케이스에서는 첫 사람이 한가운데 칸에 들어가 O..O..O가 된다. 마지막 사람인 두 번째 사람은 가장 왼쪽 칸에 들어간다.

세 번째 테스트 케이스에서는 첫 사람이 가운데 두 칸 중 왼쪽 칸에 들어가 O..O...O가 된다. 두 번째 사람은 연속한 빈 칸 세 개의 한가운데에 들어간다.

네 번째 테스트 케이스에서는 누가 어느 칸을 고르든 마지막에는 모든 칸이 찬다.

다섯 번째 테스트 케이스에서는 한 명뿐인 사람이 가운데 두 칸 중 왼쪽 칸을 고른다.