#178
Silver III
마라톤 코스
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
3
정답
2
맞힌 사람
2
정답 비율
66.7%

문제

은영이는 건강을 위해 유성구 도심에서 열리는 마라톤 대회에 참가하기로 했다. 마라톤 코스는 순서대로 방문해야 하는 NN개의 체크포인트로 구성되어 있으며, 11번 체크포인트는 출발점, NN번 체크포인트는 결승점이다.

은영이는 마라톤 코스의 모든 체크포인트를 순서대로 방문해야 하지만, 조금이라도 더 빨리 도착하기 위해 최대 하나의 체크포인트를 건너뛰어 총 이동 거리를 줄이려고 한다. 단, 11번과 NN번 체크포인트는 대회 운영상 너무 눈에 띄기 때문에 건너뛸 수 없다.

은영이가 최대 하나의 체크포인트를 건너뛰었을 때 이동해야 하는 최소 거리를 구한다.

도심의 격자 도로망을 따라 이동하므로, 두 체크포인트 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 사이의 거리는 x1x2+y1y2|x_1 - x_2| + |y_1 - y_2|로 계산한다. 이러한 거리 측정 방식은 도심의 도로가 xx축 또는 yy축에 평행하여 대각선으로 가로질러 갈 수 없는 상황을 반영하며, 흔히 "맨해튼 거리"라고 불린다.

입력

첫째 줄에 체크포인트의 개수 NN이 주어진다. (3N1000003 \le N \le 100\,000)

다음 NN개의 줄에는 각 체크포인트의 좌표 xxyy가 공백으로 구분되어 주어진다. (1000x1000-1\,000 \le x \le 1\,000; 1000y1000-1\,000 \le y \le 1\,000) 체크포인트는 방문해야 하는 순서대로 제공된다.

마라톤 코스는 여러 번 겹칠 수 있으며, 서로 다른 순서의 체크포인트가 동일한 좌표에 위치할 수도 있다. 만약 은영이가 그런 체크포인트를 건너뛴다면, 해당 순서의 체크포인트 하나만 건너뛰는 것이며 동일한 위치의 다른 체크포인트들까지 건너뛰는 것은 아니다.

출력

은영이가 최대 하나의 체크포인트를 건너뛰었을 때 가능한 최소 이동 거리를 출력한다.

예제 입력 1

4
0 0
8 3
11 -1
10 0

예제 출력 1

14
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
5512🥇
정준모
C++19ms2368KB1051B
5506🥈
조서현
Python125ms21652KB488B
난이도 투표
Silver III2명 투표· 약 2개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
5512
맞았습니다
C++19ms2368KB1051B2026. 04. 20. 12:13
5511
컴파일 에러
C++--995B2026. 04. 20. 12:10
5506
맞았습니다
Python125ms21652KB488B2026. 04. 20. 06:57