시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 14 | 2 | 2 | 15.385% |
지도에 지명을 적절히 배열하는 것은 중요한 문제이다. 만일 지명들이 서로 겹치거나, 지명이 다른 도시를 가리게 된다면 지도를 읽는 것이 매우 어려워지기 때문이다.
지도에 지명을 써 넣어야 할 도시의 위치가 (x, y) 좌표로 주어져 있다. 지명은 직사각형 영역에 써 넣어야 하는데, 지명을 써 넣을 직사각형은 x축과 y축에 평행하며, 가로 길이가 세로 길이의 3배이다. 각 도시의 지명은 도시 좌표의 우측 하단에 표시가 된다. 즉 도시의 위치가 (5, 3)이고 직사각형의 가로 길이가 3, 세로 길이가 1이라면, 지명을 써 넣을 직사각형은 (5, 3)-(8, 2)에 위치하게 된다. 직사각형의 크기는 모든 도시에 대해 동일해야 한다.
모든 도시에 지명을 작성할 수 있는 가장 큰 직사각형의 크기를 구할 수 있는 프로그램을 작성하시오. 지명을 표시하는 직사각형끼리 서로 점과 선을 공유할 수는 있지만, 서로 겹치는 면적이 있어서는 안 된다.
첫째 줄에 도시의 개수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 각 줄에 도시의 좌표를 나타내는 두 개의 음이 아닌 정수 x와 y(0 ≤ x, y ≤ 1,000,000)가 주어진다. 서로 다른 두 도시가 동일한 좌표로 주어지지 않는다.
첫줄에 가장 큰 직사각형의 가로 길이를 출력한다. 소수점 셋째자리에서 반올림하여 소수점 둘째자리까지 출력하도록 한다. (반드시 두 자리 모두 출력해야 한다.)
3 0 0 5 4 3 7
3.00
5 1 1 6 5 18 3 9 9 16 15
4.00