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

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

얼음판 위의 소

시간 제한1초메모리 제한128 MB

요약
얼음 위에서 바위에 부딪힐 때까지 미끄러지는 베시가 시작 칸에서 목표 칸까지 이동하는 데 필요한 최소 밀기 횟수를 구한다.
난이도

보통10점 중 7점

유형
BFS, 그래프, 해시맵, 시뮬레이션
정답자
아직 제출이 없습니다

문제

베시는 거대한 얼어붙은 호수에서 스케이트를 탄다. 호수는 2차원 격자이며, 두 축의 좌표는 모두 −109-10^9부터 10910^9까지이다. 격자 칸 중 NN개(1≤N≤200001 \le N \le 20000)에는 바위가 있고 각각 11번부터 NN번까지 번호가 매겨져 있다. 나머지 칸은 모두 미끄러운 얼음이다.

베시는 스케이트 실력이 좋지 않아서, 지금 있는 칸(항상 어떤 바위의 바로 옆이다)에서 한 방향으로 몸을 밀어 다른 바위에 부딪힐 때까지 미끄러지는 방식으로만 이동한다. 그리고 부딪히기 직전 칸에서 멈춘다. 밀 수 있는 방향은 정확히 북, 동, 남, 서뿐이며 바위를 뚫고 지나갈 수는 없으므로, 보통 쓸 수 있는 방향은 많아야 세 개다.

미끄러지려면 그 방향 앞쪽 어딘가에 자신을 멈춰 줄 바위가 반드시 있어야 한다. 앞에 바위가 없으면 영원히 미끄러지므로, 밀 때마다 방향을 신중히 골라야 한다.

예를 들어 베시(B)가 자신의 바로 동쪽에 있는 목표 지점(G) (x=5,y=1)(x = 5, y = 1)로 가려 한다(. = 얼음, * = 바위, B = 베시, G = 목표). 곧바로 동쪽으로 미끄러지면 바위에 부딪혀야만 멈출 수 있으므로 목표를 지나쳐 버린다. (5,1)(5, 1)에 도달하는 한 가지 방법은 다음과 같다.

   (a)              (b)             (c)              (d)
4 .....*.         .....*.         .....*.          .....*.
3 ..*....  slide  ..*....  slide  ..*....   slide  ..*....
2 ......*  north  ..B...*  east   .....B*   south  ......*
1 .*B..G. ------> .*...G. ------> .*...G.  ------> .*...B.
0 *....*.         *....*.         *....*.          *....*.
  0123456

상황 (a)에서는 북, 동, 남으로 시도할 수 있지만 멈춰 줄 바위가 있는 방향은 북쪽뿐이다. 상황 (b)에서는 동쪽으로 미끄러질 때만 멈춰 줄 바위가 있다.

ii번 바위는 (Xi,Yi)(X_i, Y_i)에 있으며 각 좌표는 −109-10^9 이상 10910^9 이하이고, 두 바위가 같은 칸에 있지 않다. 베시는 항상 어떤 바위의 바로 옆인 (Bx,By)(B_x, B_y)에서 출발하고 목표는 (Gx,Gy)(G_x, G_y)이다. 모든 좌표는 같은 범위 안에 있으며, 목표에는 항상 도달할 수 있다.

미끄러지는 것 자체는 힘들지 않지만 바위에서 몸을 미는 것은 매우 지치는 일이다. 베시가 목표에 도달하기 위해 필요한 최소 밀기 횟수를 구하여라.

입력

  • 첫째 줄: 공백으로 구분된 다섯 정수 NN, BxB_x, ByB_y, GxG_x, GyG_y.
  • 둘째 줄부터 N+1N + 1째 줄까지: i+1i + 1째 줄에는 ii번 바위의 위치를 나타내는 두 정수 XiX_i와 YiY_i가 공백으로 구분되어 주어진다.

출력

  • 첫째 줄: 베시가 목표에 도달하기 위한 최소 밀기 횟수를 나타내는 정수 하나.

예제3

  1. 예제 1

    입력
    6 2 1 5 1
    5 4
    2 3
    1 1
    6 2
    5 0
    0 0
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 1 0 4 0
    0 0
    5 0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3 0 1 4 4
    0 0
    0 5
    5 4
    
    예상 출력
    2