뚱뚱한 닌자
면접 대비시간 제한3초메모리 제한128 MB
N x N 정사각형 안의 점 센서들이 주어질 때, 센서에 닿지 않고 왼쪽에서 오른쪽으로 지나갈 수 있는 가장 큰 원의 지름을 구한다.
문제
청부 살인 시장이 침체되면서 많은 닌자가 일자리를 잃고 집에서 햄버거를 먹으며 게임 쇼를 보게 되었다. 살이 찐 이들은, 전략적으로 설치된 레이저 센서를 하나도 건드리지 않고 닌자다운 은신술로 정사각형 홀을 가로지르는 사람에게 평생 햄버거를 제공하는 게임 쇼에 관심을 갖는다.
홀은 한 변이 미터인 정사각형 공간이다. 각 레이저는 천장에 설치되어 바닥의 센서를 향해 수직으로 빔을 쏜다. 빔의 폭은 이며, 참가자가 센서에 닿으면 경보가 울린다. 참가자는 홀의 왼쪽에서 들어와 몸 전체로 홀을 가로질러 오른쪽을 완전히 통과해야 하며, 위쪽이나 아래쪽 벽을 절대 넘어서는 안 된다. 오른쪽 변에 닿기만 해서는 성공으로 인정되지 않는다.
진행자는 아주 뚱뚱한 닌자일수록 성공하기 어렵도록 센서를 배치하고 싶어 한다. 센서 배치가 주어졌을 때, 홀을 여전히 통과할 수 있는 가장 뚱뚱한 닌자의 둘레(지름)를 구하라. 위에서 볼 때 각 닌자는 완전한 원이며, 너무 무거워 바닥에서 뛰어오를 수 없다고 가정한다.
입력
입력은 여러 개의 게임 인스턴스로 이루어진다. 각 인스턴스는 공백으로 구분된 두 정수 과 이 있는 줄로 시작한다. 은 홀 한 변의 길이(미터), 은 설치된 레이저의 수이다 (). 이어지는 개의 줄에는 각각 공백으로 구분된 두 정수 와 가 있으며, 이는 바닥에 있는 레이저 센서의 좌표이다 ().
두 개의 만 있는 줄은 입력의 끝을 의미하며, 처리하지 않는다.
출력
각 게임마다 한 줄에 실수 하나를 출력한다. 이는 레이저 센서를 하나도 건드리지 않고 홀을 통과할 수 있는 가장 뚱뚱한 닌자의 둘레(지름)이다. 지름은 소수점 셋째 자리까지 반올림하며, 필요하면 으로 자리를 채운다.
양수 의 반올림 규칙: 넷째 소수 자리 가 보다 작으면 결과는 이고, 그렇지 않으면 결과는 이다. 예를 들어 은 으로, 는 으로 출력한다.