포트홀
시간 제한1초메모리 제한128 MB
직사각형 부지에 밧줄을 직선으로 걸쳐 구멍을 지나지 않게 놓아 양쪽 구멍 넓이 합이 최대한 같아지도록 위치를 정한다.
문제
당신은 다른 회사와 경쟁하여 도시의 도로에 생긴 포트홀(pothole, 파인 구멍)을 메우는 시(市) 계약을 따내려고 합니다.
시는 승자를 정하기 위해, 포트홀이 많이 난 직사각형 주차장에서 어느 회사가 더 빨리 일하는지를 겨루는 대회를 엽니다.
당신은 밧줄을 주차장의 한 변에서 맞은편 변까지 일직선으로 팽팽하게 쳐서, 주차장을 두 개의 더 작은 직사각형으로 나누어야 합니다. 그러면 상대 회사가 두 구역 중 한쪽을 골라 일하고, 당신은 나머지 한쪽에서 일합니다. 따라서 당신은 두 구역의 작업량(포트홀들의 총 넓이)이 최대한 비슷해지도록 밧줄을 놓고 싶습니다.
포트홀은 원으로 표현합니다. 어떤 두 포트홀도 서로 겹치지 않으며, 어떤 포트홀도 주차장의 경계와 겹치지 않습니다. 밧줄은 포트홀을 가로질러서는 안 되지만, 포트홀이나 다른 포트홀, 또는 주차장의 경계에 접하는 것은 허용됩니다.
입력
입력은 하나 이상의 문제 집합으로 이루어집니다.
각 문제 집합은 다음과 같이 주어집니다.
- 첫 줄에는 주차장의 너비 와 높이 가 두 개의 양의 실수로 주어집니다.
- 그다음 두 줄 이상에는 각 포트홀의 정보가 주어집니다. 각 줄은 세 개의 음이 아닌 실수로 이루어지며, 순서대로 포트홀 중심의 좌표, 좌표, 그리고 반지름입니다. 좌표계의 원점은 주차장의 한 모서리입니다.
- 세 개의 0을 공백으로 구분한 줄(
0 0 0)이 나오면 해당 문제 집합이 끝납니다.
마지막 문제 집합 뒤에, 다음 주차장 정보가 와야 할 자리에 두 개의 0을 공백으로 구분한 줄(0 0)이 나오면 전체 입력이 끝납니다.
각 문제 집합에 대해, 밧줄 양쪽의 포트홀 총 넓이가 최대한 비슷해지도록 밧줄을 놓을 위치를 정하세요. 밧줄은 어떤 포트홀도 통과할 수 없지만, 포트홀에 접하는 것은 허용됩니다.
출력
각 문제 집합마다 다음 한 줄을 출력합니다.
x1 y1 x2 y2
여기서 과 는 밧줄이 주차장 경계와 만나는 두 점입니다. 두 점은 이고 가 되도록 순서를 맞춰 출력합니다. 각 좌표는 소수점 아래 한 자리까지 출력하며, 값 사이는 공백 하나로 구분합니다.
이 두 점은 밧줄이 포트홀들을 총 넓이가 최대한 비슷한 두 무리로 나누도록 선택해야 합니다.
포트홀 넓이를 똑같이 비슷하게 나누는 밧줄 위치가 여러 개라면, 다음 순서로 동점을 처리합니다.
- 주차장 자체를 넓이가 같은 두 부분으로 가장 가깝게 나누는 위치를 고릅니다.
- 그래도 동점이면, 주차장의 x축과 만나는 밧줄(즉, y축과 평행한 밧줄)을 우선합니다.
- 그래도 동점이면, x 좌표가 더 작은 위치를 고릅니다.