시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 192 | 85 | 80 | 52.980% |
상근이는 네비게이션을 하나 만들었다. 이 네비게이션은 다른 기계와 다르게 최단 경로만 구하지 않는다. 상근이는 매일 아침마다 근처 공원을 산책하면서 네비게이션의 성능을 테스트해 보려고 한다.
매일 아침 네비게이션은 산책 경로를 하나 제안한다. 경로는 여러 개의 선분으로 이루어져 있고, 각 선분은 두 정수 (X, Y)로 나타낼 수 있으며, 이동하는 방향과 거리를 나타낸다.
예를 들어, 왼쪽 그림은 4개의 선분으로 이루어진 경로이다. 첫 번째 선분은 (-1, 1), 두 번째 선분은 (1, 1), 세 번째는 (1, 0) 마지막 네 번째는 (0, -2)로 나타낼 수 있다.
경로가 끝나는 최종 위치는 시작한 위치에서 동쪽으로 1미터 떨어져 있다.
상근이는 산책을 마치는 위치가 시작한 위치와 많이 떨어져 있는 것을 싫어하기 때문에, 선분 하나를 제거하려고 한다. 즉, 산책 경로에 있는 선분 중 하나를 제거해 시작 위치와 마지막 위치 사이의 거리를 최소로 만들려고 한다.
예를 들어, 상근이가 그림에서 세 번째 선분을 없애면 오른쪽 그림과 같이 되고, 산책을 마치는 위치가 시작한 위치와 정확하게 일치하게 된다.
네비게이션이 제안한 산책 경로를 그대로 사용할 때, 산책을 마치는 위치가 시작한 위치와 얼마나 떨어져있는 지를 구하고, 그 경로에서 선분 하나를 제거했을 때, 시작 위치와 마지막 위치 사이 거리의 최솟값을 구하는 프로그램을 작성하시오.
첫째 줄에 선분의 개수 N (1 < N ≤ 30)이 주어진다. 다음 N개 줄에는 각 선분을 나타내는 두 정수 X와 Y가 주어진다. (-1000 ≤ X, Y ≤ 1000)
첫째 줄에 입력으로 주어진 산책 경로를 그대로 사용했을 때, 산책을 마치는 위치를 출력한다. (시작한 위치의 좌표를 (0,0)이라고 한다)
둘째 줄에는 선분을 하나 제거했을 때, 산책을 마치는 위치와 시작한 위치 사이 거리의 최솟값을 반올림해 소수점 둘째 자리까지 출력한다.
4 -1 1 1 1 1 0 0 -2
1 0 0.00
3 0 1 1 0 -1 -1
0 0 1.00
4 0 5 5 0 0 -5 -5 0
0 0 5.00