울타리
시간 제한1초메모리 제한256 MB
정사각형 목초지와 기존 울타리 선분들이 주어질 때, 목초지를 완전히 둘러싸는 데 필요한 새 울타리의 최소 총 길이를 구합니다.
문제
JOI 씨는 IOI 나라에 넓은 땅을 소유하고 있다. IOI 나라는 X축과 Y축이 서로 직교하는 좌표평면으로 나타낸다. 땅은 X좌표와 Y좌표가 모두 이상 이하인 영역이다. 그 안의 목장은 X좌표와 Y좌표가 모두 이상 이하인 영역이며, JOI 씨는 여기서 소를 기른다.
JOI 씨는 소가 빠져나가지 못하도록 울타리로 목장을 둘러싸려고 한다. 울타리는 길이가 양의 실수인 선분이다. 목장 내부의 점에서 땅 밖의 점으로 가는 경로는 모두 울타리 위의 점(울타리 끝점 포함)을 지나야 한다.
이미 세워진 울타리는 활용할 수 있다. 기존 울타리 중 두 울타리가 공통점을 가지면, 그 점은 두 울타리 중 적어도 하나의 끝점이다.
JOI 씨는 새 울타리를 원하는 만큼 세울 수 있다. 새 울타리의 길이와 방향은 자유롭지만, 목장 내부를 지나거나 땅 밖으로 나가서는 안 된다. 목장의 경계를 따라 세우는 것은 허용된다. 길이가 ()인 새 울타리의 비용은 이다. 두 울타리가 교차해도 되고, 끝점끼리 겹쳐도 되며, 한 울타리의 끝점이 다른 울타리 위에 놓여도 된다.
목장의 크기와 기존 울타리 정보가 주어졌을 때, 목장을 둘러싸는 데 필요한 최소 총비용을 구하는 프로그램을 작성하라.
입력
첫째 줄에 정수 과 가 주어진다. 목장은 X좌표와 Y좌표가 모두 이상 이하인 영역이고, 기존 울타리는 개이다.
둘째 줄부터 개의 줄에 걸쳐 정수 , , , 가 주어진다. 이는 번째 기존 울타리가 와 를 잇는 선분임을 뜻한다.
출력
목장을 둘러싸는 데 필요한 최소 총비용을 한 줄에 출력한다. 절대오차가 이하이면 정답으로 인정하며, 소수점 이하 자릿수는 자유롭게 출력해도 된다.
제한
- ()
- 기존 울타리는 목장 내부를 엄격하게 지나지 않는다.
- 서로 다른 두 기존 울타리가 공통점을 가지면, 그 점은 두 울타리 중 적어도 하나의 끝점이다.