만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

소행성 지대

면접 대비

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

요약
수평 이동은 무료이고 빈 칸만 지나갈 때, 시작점에서 도착점까지 가는 데 필요한 최소 수직 이동 횟수를 구합니다.
난이도

보통10점 중 5점

유형
최단 경로, 구간
정답자
아직 제출이 없습니다

문제

많은 사람이 프리에나이 길의 소행성 지대가 소행성으로 가득하다고 생각한다. 하지만 루카스는 지대에서 비어 있는 부분이 표시된 지도를 가지고 있다. 지도에서 소행성 지대는 M×NM \times N 칸으로 나뉘며, 각 칸은 비어 있거나 소행성으로 가득 차 있다.

루카스는 소행성 지대를 날아서 지나가려 한다. 그는 빈 칸으로만 비행할 수 있다.

루카스의 우주선은 필요한 만큼 수평으로 비행할 수 있다. 수직으로 비행하면 연료를 쓴다. 세로로 지나는 칸마다 연료 1 단위가 든다. 루카스의 목적지는 (X2,Y2)(X_2, Y_2) 칸에 있는 행성이다.

목적지에 도달하는 데 필요한 연료의 최솟값을 구하라.

입력

첫째 줄에 소행성 지대의 가로 길이 MM과 세로 길이 NN이 주어진다.

둘째 줄에는 루카스의 시작 좌표 X1X_1, Y1Y_1과 목적지 좌표 X2X_2, Y2Y_2가 주어진다.

셋째 줄에는 빈 영역의 개수 KK가 주어진다.

이어지는 KK개의 줄에는 자연수 hih_i, aia_i, bib_i가 세 개씩 주어진다. 이는 hih_i행의 aia_i번째 칸부터 bib_i번째 칸까지(양 끝 포함) 비어 있다는 뜻이다.

출발점과 목적지는 모두 KK개의 빈 영역 중 하나에 속한다. 같은 행에 있는 두 빈 영역은 서로 닿거나 겹치지 않는다.

출력

목적지에 도달하는 데 필요한 연료의 최솟값을 한 정수로 출력한다. 목적지에 도달할 수 없으면 −1-1을 출력한다.

제한

1≤X1,X2≤M1 \le X_1, X_2 \le M

1≤Y1,Y2≤N1 \le Y_1, Y_2 \le N, 1≤ai≤bi≤M1 \le a_i \le b_i \le M

1≤hi≤N1 \le h_i \le N.

예제1

  1. 예제 1

    입력
    6 7
    2 1 2 6
    8
    1 1 3
    5 4 4
    2 3 3
    3 3 6
    4 4 4
    4 6 6
    6 2 4
    7 4 4
    
    예상 출력
    5