거울 덫
시간 제한3초메모리 제한512 MB
레이저가 원점에 있는 상자 [-x,x]x[-y,y]x[-z,z]마다, 모서리와 꼭짓점을 피하면서 원점으로 돌아오는 빛의 최대 맨해튼 이동 거리를 구한다.
문제
거울 덫은 내부 여섯 면이 모두 거울인 직육면체이며, 반사면이 안쪽을 향합니다. 크기는 이고 는 양의 정수입니다. 정확히 중심에는 크기를 무시할 수 있는 점 레이저가 놓여 있습니다. 상자의 모서리와 평행하도록 좌표축을 잡고 레이저를 원점에 두면, 상자는 를 차지합니다.
레이저는 상자 내부(거울 표면 포함, 단 원점 은 제외)의 임의의 정수 좌표 점을 향해 발사할 수 있습니다. 발사된 광선은 거울에서 반사되며, 이동 거리는 맨해튼(시가지) 거리, 즉 세 축 방향으로 각각 이동한 거리의 합으로 측정합니다.
다음 조건을 모두 만족하도록 조준 방향을 정할 때, 광선이 이동할 수 있는 총 거리의 최댓값을 구하세요.
- 거울에서 (모든 면일 필요는 없지만) 반사되고,
- 상자의 모서리(두 면이 만나는 선)나 꼭짓점을 지나지 않으며,
- (다른 방향에서라도) 레이저로 되돌아옵니다.
모서리와 꼭짓점은 광선을 반사하지 않습니다.
참고: 최댓값을 달성하는 조준점은 여러 개일 수 있으므로, 이 문제에서는 조준점이 아니라 이동한 총 거리의 최댓값(정수 하나)을 출력합니다.
입력
한 번의 입력에 여러 개의 거울 덫이 주어집니다. 첫 줄에 덫의 개수 () 가 주어집니다. 이어지는 개의 줄에는 각 덫이 공백으로 구분된 세 정수 () 로 한 줄에 하나씩 주어집니다. 이 덫의 크기는 입니다.
출력
정확히 개의 줄을 출력합니다. 번째 줄에는 번째 덫에서 위 조건을 모두 만족하며 광선이 이동할 수 있는 총 거리의 최댓값을 정수로 출력합니다.