경로 찾기

시간 제한2초메모리 제한256 MB

요약
정수 격자에서 축에 평행하게 이동하되 방향 전환은 벌집의 모서리나 꼭짓점에서만 가능할 때, 최대 1000개의 서로 닿지 않는 직사각형 장애물을 피해 사무실에서 집까지의 최단 시간을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, 기하, 시뮬레이션
정답자
아직 제출이 없습니다

문제

TooDee는 22차원 직교좌표 평면 위의 지역으로, 이곳에는 벌처럼 생긴 영리한 22차원 생물 Dee들이 산다. TooDee에는 벌집이 있는데, 각 벌집은 모든 변이 좌표축과 평행한 직사각형 모양이다.

Dee는 정해진 규칙에 따라서만 날 수 있다. 비행 경로는 좌표축과 평행한(수평 또는 수직) 선분들로 이루어지며, 모든 선분의 양 끝점 좌표는 정수이다. TooDee에서 다루는 모든 점의 좌표는 정수이고, Dee의 비행 규칙은 다음과 같다.

  • 현재 위치가 점 (x,y)(x, y)이면, 인접한 네 점 (x+1,y)(x+1, y), (x−1,y)(x-1, y), (x,y+1)(x, y+1), (x,y−1)(x, y-1) 중 하나로 이동할 수 있다.
  • 벌집의 내부로는 들어갈 수 없다(벌집의 변이나 꼭짓점 위에 있는 것은 허용된다).
  • 벌집의 변이나 꼭짓점 위에 있을 때에만 비행 방향을 바꿀 수 있다.
  • 출발할 때에는 상하좌우 네 방향 중 하나를 자유롭게 선택할 수 있다.

오늘 밤은 TooDee의 복지 담당관 Deeficer의 딸 생일이라, Deeficer는 사무실에서 집으로 최대한 빨리 돌아가려 한다. Dee는 11초에 길이 11만큼 이동한다. 위 규칙을 지키면서 사무실에서 집까지 도착하는 데 걸리는 최소 시간(초)을 구하라.

입력

첫 줄에 테스트 시나리오의 수 TT (1≤T≤201 \le T \le 20)가 주어진다. 이어서 TT개의 시나리오가 주어지며, 각 시나리오 앞에는 빈 줄이 하나 있다.

각 시나리오의 첫 줄에는 네 정수가 주어진다. 앞의 두 정수는 사무실의 xx, yy 좌표이고, 뒤의 두 정수는 집의 xx, yy 좌표이다. 둘째 줄에는 벌집의 수 NN이 주어진다. 이어지는 NN개의 줄에는 각 벌집이 한 줄에 하나씩 주어지며, 벌집 직사각형의 대각으로 마주 보는 두 꼭짓점의 좌표(네 정수)로 표현된다.

서로 다른 두 벌집은 겹치지 않고, 변이 맞닿지도 않으며, 꼭짓점이 서로 닿지도 않는다. 사무실과 집의 위치는 서로 다르고, 각 벌집의 넓이는 11 이상이다.

모든 좌표 값은 −109-10^9 이상 10910^9 이하이며, 0≤N≤10000 \le N \le 1000이다.

출력

각 시나리오마다 사무실에서 집까지 가장 빨리 가는 데 걸리는 시간(초)을 한 줄에 출력한다. 비행 규칙을 지키면서 집에 도달할 수 없으면 No Path를 출력한다.

예제4

  1. 예제 1

    입력
    2
    
    1 7 7 8
    2
    2 5 3 8
    4 10 6 7
    
    2 1 5 4
    1
    3 1 4 3
    
    예상 출력
    9
    No Path
    
  2. 예제 2

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

    입력
    1
    
    0 0 3 4
    0
    
    예상 출력
    No Path
    
  4. 예제 4

    입력
    1
    
    2 2 2 7
    0
    
    예상 출력
    5