#B1320. 三角迷宫找出口

三角迷宫找出口

【题目描述】

有一个由 NN 行小三角形组成的三角形迷宫,第 ii 行有 2×i−12\times i-1 个小三角形,位置记作 (i,j)(i,j)。

前 44 行位置示意如下:

三角坐标示意图

每个小三角形最多能通过边移动到左右相邻的小三角形;若 jj 为奇数,还能移动到 (i+1,j+1)(i+1,j+1);若 jj 为偶数,还能移动到 (i−1,j−1)(i-1,j-1)。

给定起点和若干出口,请找出距离起点步数最少的出口及最短步数。


【输入描述】

第一行输入两个整数 N,MN,M。

第二行输入起点 Si,SjS_i,S_j。

接下来 MM 行,每行输入一个出口坐标 Ei,EjE_i,E_j。

保证:

  • 1≤N≤20001\le N\le 2000,1≤M≤20001\le M\le 2000。
  • 起点和所有出口坐标均为合法三角形位置。
  • 合法位置 (i,j)(i,j) 满足 1≤i≤N1\le i\le N,1≤j≤2i−11\le j\le 2i-1。

【输出描述】

第一行输出选中的出口坐标;第二行输出从起点到该出口的最少步数。

若有多个最近出口,输出输入中最先达到最短距离的出口。


【样例 1】

【样例 1 输入】

4 2
3 3
4 4
1 1

【样例 1 输出】

4 4
1

【样例 1 解释】

从 (3,3)(3,3) 可以一步到达 (4,4)(4,4)。


【样例 2】

【样例 2 输入】

5 3
5 3
1 1
3 2
5 9

【样例 2 输出】

3 2
5

【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 3 30 N≤50N\le 50
4 ~ 10 70 无