eolymp
bolt
Try our new interface for solving problems
Məsələlər

Морж на льдинах

Морж на льдинах

Морж Александр находится в океане в точке (\textbf{x_A},\textbf{y_A}). Льдин вокруг него полно. Он хочет добраться до точки (\textbf{x_B},\textbf{y_B}) за минимальное количество прыжков. Александр может прыгать максимум на две клетки в одном из четырёх направлений. Если он находится в точке (\textbf{x},\textbf{y}), то за один прыжок он может попасть в одну из следующих клеток: (\textbf{x+1},\textbf{y}), (\textbf{x-1},\textbf{y}), (\textbf{x},\textbf{y+1}), (\textbf{x},\textbf{y-1}), (\textbf{x+2},\textbf{y}), (\textbf{x-2},\textbf{y}), (\textbf{x},\textbf{y+2}), (\textbf{x},\textbf{y-2}). Александр будет прыгать в клетку только если она находится на льдине. Гарантируется, что точки (\textbf{x_A},\textbf{y_A}) и (\textbf{x_B},\textbf{y_B}) находятся на льдинах. \InputFile В первой строке даётся четыре целых числа -- координаты точек (\textbf{x_A},\textbf{y_A}) и (\textbf{x_B},\textbf{y_B}) (\textbf{1 }≤ \textbf{x_i,y_i} ≤ \textbf{10^9}). Координаты льдин будут задаваться отрезками. Во второй строке идёт количество этих отрезков \textbf{n} (\textbf{1 }≤ \textbf{n} ≤ \textbf{10^5}). Каждая из следующих \textbf{n} строк содержит три целых числа: \textbf{x} (\textbf{1 }≤ \textbf{x} ≤ \textbf{10^9}), \textbf{y_L} и \textbf{y_R} (\textbf{1 }≤ \textbf{y_L}≤\textbf{y_R} ≤ \textbf{10^9}). Это значит, что клетки с координатами (\textbf{x},\textbf{ y_i}) (\textbf{y_\{L \}}≤ \textbf{y_\{i \}}≤ \textbf{y_R}) находятся на льдинах. Общее количество таких клеток не превысит \textbf{10^5}. \OutputFile Минимальное количество прыжков, за которое Александр доберётся из точки (\textbf{x_A},\textbf{y_A}) в точку (\textbf{x_B},\textbf{y_B}), или \textbf{-1}, если этого сделать нельзя.
Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
1 1 3 4
3
1 1 1
2 1 4
3 4 4
Çıxış verilənləri #1
4
Müəllif Борис Соколов
Mənbə Дистанционная Летняя Компьютерная Школа - лето 2013 года