시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
평화로운 도시의 한 지점에 위험한 폐기물이 남아 있다. 도시에 사는 사람들은 그 위험을 잘 알지 못했지만, 적어도 그 지점을 벽으로 둘러싸기로 했다.
폐기물 주변에는 원래 N개의 벽이 있었다. 각 벽은 두 끝점을 잇는 선분으로 주어지며, 폭발로 무너진 이 벽을 다시 세우는 데에는 벽마다 다른 비용이 든다. 도시는 주어진 벽들 중 일부 또는 전부를 골라, 가능한 한 적은 비용으로 폐기물을 둘러싸는 벽을 만들려고 한다.
완성된 벽은 모든 선택된 선분이 서로 끝점으로 연결된 볼록다각형이어야 한다. 폐기물의 위치가 어떤 주어진 선분 위에 놓이는 경우는 없다. 다만 기존 벽의 기록이 정확하지 않을 수 있으므로, 입력으로 주어지는 서로 다른 두 선분이 서로 교차할 수는 있다.
폐기물의 위치와 각 벽의 정보가 주어질 때, 폐기물을 둘러싸는 볼록다각형 모양의 벽을 만드는 데 필요한 최소 비용을 구하라.
첫째 줄에 세 정수 N, X, Y가 주어진다. (X, Y)는 폐기물의 위치이다. 3 <= N <= 100이다.
다음 N개의 줄에는 각 벽의 정보 x1 y1 x2 y2 C가 주어진다. 이는 두 점 (x1, y1)과 (x2, y2)를 잇는 벽을 다시 세우는 비용이 C임을 뜻한다. 1 <= C <= 10000이며, 모든 좌표는 절댓값이 10000을 넘지 않는 정수이다.
폐기물을 둘러싸는 볼록다각형 모양의 벽을 만들 수 있다면 필요한 최소 비용을 출력한다. 만들 수 없다면 -1을 출력한다.