K명이 비어 있는 구간을 규칙에 따라 나눠 앉을 때, 마지막으로 앉은 사람이 고른 자리의 좌우 빈 칸 수를 구한다.
보통7힙그리디수학시뮬레이션면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB어떤 화장실에는 칸이 한 줄로 N+2개 있다. 양쪽 끝 두 칸은 관리인이 계속 쓰고 있어서 절대 비지 않고, 나머지 N개를 이용자가 쓴다.
화장실에 들어온 사람은 다른 사람과 최대한 멀리 떨어진 칸을 고른다. 고르는 방법은 다음과 같이 정해져 있다. 비어 있는 칸 S마다 두 값 LS와 RS를 구한다. LS는 S의 왼쪽에서 가장 가까운 사용 중인 칸까지 사이에 있는 빈 칸의 수이고, RS는 오른쪽으로 잰 같은 값이다. 먼저 min(LS,RS)가 가장 큰 칸만 남긴다. 그런 칸이 하나뿐이면 그 칸을 고르고, 여럿이면 그중 max(LS,RS)가 가장 큰 칸을 고른다. 그래도 여럿 남으면 가장 왼쪽 칸을 고른다.
K명이 차례로 들어온다. 한 사람이 칸을 고른 뒤에 다음 사람이 들어오고, 아무도 나가지 않는다.
마지막 K번째 사람이 고른 칸 S에 대해 max(LS,RS)와 min(LS,RS)를 구하라.
첫째 줄에 테스트 케이스의 수 T가 주어진다. 다음 T개의 줄에 테스트 케이스가 한 줄에 하나씩 주어지며, 각 줄에는 두 정수 N과 K가 주어진다.
제한
각 테스트 케이스마다 Case #x: y z 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호, y는 마지막 사람이 고른 칸 S의 max(LS,RS), z는 같은 칸의 min(LS,RS)이다.
첫 번째 테스트 케이스에서는 첫 사람이 가운데 두 칸 중 왼쪽 칸에 들어가 O.O..O가 된다. O는 사용 중인 칸, .은 빈 칸이다. 마지막 사람인 두 번째 사람은 그 바로 오른쪽 칸에 들어가므로 한쪽에는 빈 칸이 1개, 반대쪽에는 0개 남는다.
두 번째 테스트 케이스에서는 첫 사람이 한가운데 칸에 들어가 O..O..O가 된다. 마지막 사람인 두 번째 사람은 가장 왼쪽 칸에 들어간다.
세 번째 테스트 케이스에서는 첫 사람이 가운데 두 칸 중 왼쪽 칸에 들어가 O..O...O가 된다. 두 번째 사람은 연속한 빈 칸 세 개의 한가운데에 들어간다.
네 번째 테스트 케이스에서는 누가 어느 칸을 고르든 마지막에는 모든 칸이 찬다.
다섯 번째 테스트 케이스에서는 한 명뿐인 사람이 가운데 두 칸 중 왼쪽 칸을 고른다.