CF242C.King's Path

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个国王站在一个 109×10910^9 \times 10^9 的国际象棋棋盘上。

规定第 ii 行第 jj 列的位置表示为 (i,j)(i, j)。

在给定的国际象棋棋盘上有一些格子是允许通过的。

国际象棋棋盘的所有允许通过的格子都以下面所述的形式的形式给出。

一共 nn 段,每段用三个整数 ri,ai,bi (ai≤bi)r_i, a_i, b_i\ (a _ i \le b _ i) 表示,意思是在 rir_i 行中第 aia_i 个格子到第 bib_i 个格子是允许通过的。

国王可以移动到与它相邻的任意一个格子里(只能走一步)。

如果两个格子有至少一个公用的点,那么就认为他们是相邻的。

求出国王从 (x0,y0)(x _ 0, y _ 0) 移动至 (x1,y1)(x _ 1, y _ 1) 的最少步数。

输入格式

第一行包含四个由空格分隔的整数 x0,y0,x1,y1x_0,y_0,x_1,y_1,表示国王的初始和最终位置。

第二行包含一个整数 nn,表示有 nn 段可以通过的格子。

接下来的 nn 行则是这 nn 个部分中可通行的格子的描述(包含三个由空格隔开的整数 rir_i,aia_i,bib_i)。

输出格式

如果在初始位置和最终位置之间没有路径,输出 −1-1。

否则输出一个整数:国王从初始位置到最终位置所需的最小移动次数。

输入输出样例

  • 输入#1

    5 7 6 11
    3
    5 3 8
    6 7 11
    5 2 5
    

    输出#1

    4
    
  • 输入#2

    3 4 3 10
    3
    3 1 4
    4 5 9
    3 10 10
    

    输出#2

    6
    
  • 输入#3

    1 1 2 10
    2
    1 1 3
    2 6 10
    

    输出#3

    -1
    

说明/提示

1≤x0,y0,x1,y1≤1091 \le x_0, y_0, x_1, y_1 \le 10^9

1≤n≤1051\le n \le 10^5

1≤ri,ai,bi≤1091 \le r_i, a_i, b_i \le 10^9

ai≤bia_i \le b_i

保证国王的初始和最终位置是允许通过的格子。

保证国王的初始和最终位置不一致。

保证所有给定部分的总长度不超过 10510^5 。

输入解题思路,AI测评打分。不知道怎么写?

首页