아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

독의 늪지

면접 대비

시간 제한8초메모리 제한512 MB

요약
100x100 격자에 하나의 안전한 직사각형이 주어질 때, N개의 목적지를 순서대로 방문하며 늪 칸에 들어가는 횟수의 합을 최소로 구한다.
난이도

보통10점 중 6점

유형
최단 경로, 그래프, BFS, 구현
정답자
아직 제출이 없습니다

문제

당신은 레트로 롤플레잉 게임을 하고 있다. 이 게임의 필드는 세로 100칸, 가로 100칸의 격자이다. 필드의 왼쪽에서 x번째 열, 위에서 y번째 행의 칸은 (x, y)로 나타낸다. 당신이 조작하는 캐릭터는 필드 내의 어떤 칸 위에 있으며, 필드 안을 상하좌우로 한 칸씩 이동할 수 있다.

당신이 조작하는 캐릭터는 지금 (X0, Y0)에 있고, 앞으로 N개의 목적지를 순서대로 방문할 예정이다. 그러나 캐릭터를 조작할 때에는 필드 칸의 종류에 주의하여 캐릭터를 이동시켜야 한다. 각 칸은 독이 있는 늪지이거나 독이 없는 땅 중 하나이다. 캐릭터의 이동 대상 칸이 독이 있는 늪지이면 캐릭터는 대미지를 받고, 이동 대상 칸이 독이 없는 땅이면 대미지를 받지 않는다. 당신은 캐릭터가 받는 대미지를 줄이기 위해 적절히 경로를 선택하여 캐릭터가 대미지를 받는 횟수를 최대한 줄이고 싶다. 대미지의 유무는 캐릭터의 이동 대상 칸의 종류로 결정된다. 예를 들어, 이동 출발 칸이 독이 있는 늪지이고 이동 대상 칸이 독이 없는 땅이면 캐릭터는 대미지를 받지 않는다는 점에 주의하라.

당신의 분석에 따르면, 왼쪽 위를 (A, B), 오른쪽 아래를 (C, D)로 하는 직사각형 범위 안의 칸은 독이 없는 땅이고, 그 외의 칸은 독이 있는 늪지이다. 당신의 캐릭터가 독이 있는 늪지로 인해 대미지를 받는 횟수를 최소화하도록 N개의 목적지를 순서대로 방문했을 때, 당신이 조작하는 캐릭터가 대미지를 받는 횟수를 구하라.

입력

입력은 최대 50개의 데이터 세트로 이루어진다. 각 데이터 세트는 다음 형식으로 나타낸다.

N
A B C D
X0 Y0
X1 Y1
X2 Y2
...
XN YN

데이터 세트는 N+3개의 행으로 이루어진다.

1번째 행은 목적지의 수 N (1 ≤ N ≤ 100)을 나타내는 정수이다.

2번째 행은 독이 없는 땅이 되는 직사각형 범위를 나타내는 정수 A, B, C, D이며, 1 ≤ A ≤ C ≤ 100, 1 ≤ B ≤ D ≤ 100을 만족한다. 캐릭터의 이동 대상 칸 (x, y)가 A ≤ x ≤ C와 B ≤ y ≤ D를 만족할 때, 그리고 그 경우에만 캐릭터는 대미지를 받지 않는다.

3번째 행은 당신이 조작하는 캐릭터가 처음에 있는 칸의 좌표 (X0, Y0)를 나타내는 정수이며 1 ≤ X0, Y0 ≤ 100을 만족한다. 4번째 행부터 이어지는 N개의 행에는 N개의 목적지 좌표가 주어진다. 3+i번째 행은 i번째 목적지 칸의 좌표 (Xi, Yi)를 나타내는 정수이며 1 ≤ Xi, Yi ≤ 100을 만족한다. 캐릭터가 처음에 있는 칸과 목적지 칸의 좌표는 각각 다르다. 즉 (Xj, Yj) ≠ (Xk, Yk) (0 ≤ j < k ≤ N)를 만족한다.

입력의 끝은 0 하나만으로 이루어진 행으로 나타낸다.

출력

각 데이터 세트에 대해, 당신이 조작하는 캐릭터가 대미지를 받는 횟수를 한 줄로 출력하라.

힌트

입력 예를 아래 그림에 나타낸다. (3, 3)부터 (5, 3) 사이는 독이 없는 땅이지만 (6, 3)과 (7, 3)은 독이 있는 늪지이므로, 1번째 목적지로 이동할 때까지 대미지를 2번 받는다. 1번째 목적지에서 2번째 목적지까지 아래 방향으로 4번 이동하여 최단 거리로 이동하면 모든 칸이 독이 있는 늪지이므로 대미지를 4번 받는다. 돌아가서 독이 없는 땅을 지나면 (6, 3), (6, 7), (7, 7)의 독이 있는 늪지에 들어가므로 대미지를 3번 받는다. 대미지를 받는 횟수를 최소화하는 이동 방법을 선택했을 때, 대미지를 받는 횟수는 5번이다.

예제1

  1. 예제 1

    입력
    2
    3 3 5 7
    3 3
    7 3
    7 7
    5
    1 10 100 10
    1 1
    100 1
    50 20
    50 80
    51 21
    51 1
    0
    
    예상 출력
    5
    174