#244. 棋盘

棋盘

题目描述

有一个 m×mm \times m 的棋盘,每个格子可能是红色、黄色或无色。从棋盘左上角 (1,1)(1,1) 走到右下角 (m,m)(m,m),规则如下:

  • 只能站在有颜色的格子上(起点一定有颜色)
  • 每次可以向上、下、左、右移动
  • 同色格子间移动不花费金币
  • 不同颜色格子间移动花费 11 个金币
  • 可以花费 22 个金币施展魔法,将下一个无色格子暂时变为指定颜色
  • 魔法不能连续使用,必须走到有颜色的格子后才能再次使用
  • 离开魔法变色的格子后,该格子恢复无色

求从左上角到右下角花费的最少金币数,如果无法到达输出 1-1

输入格式

第一行两个整数 m,nm, n,表示棋盘大小和有颜色格子的数量。

接下来 nn 行,每行三个整数 x,y,cx, y, c,表示坐标 (x,y)(x,y) 的格子颜色为 cc00 表示红色,11 表示黄色)。

输出格式

一个整数,表示最少花费的金币数,如果无法到达输出 1-1

5 7
1 1 0
1 2 0
2 2 1
3 3 1
3 4 0
4 4 1
5 5 0
8
5 5
1 1 0
1 2 0
2 2 1
3 3 1
5 5 0
-1

提示

样例 1 说明

(1,1)(1,1) 开始,走到 (1,2)(1,2) 不花费金币
(1,2)(1,2) 向下走到 (2,2)(2,2) 花费 11 枚金币
(2,2)(2,2) 施展魔法,将 (2,3)(2,3) 变为黄色,花费 22 枚金币
(2,2)(2,2) 走到 (2,3)(2,3) 不花费金币
(2,3)(2,3) 走到 (3,3)(3,3) 不花费金币
(3,3)(3,3) 走到 (3,4)(3,4) 花费 11 枚金币
(3,4)(3,4) 走到 (4,4)(4,4) 花费 11 枚金币
(4,4)(4,4) 施展魔法,将 (4,5)(4,5) 变为黄色,花费 22 枚金币
(4,4)(4,4) 走到 (4,5)(4,5) 不花费金币
(4,5)(4,5) 走到 (5,5)(5,5) 花费 11 枚金币
共花费 88 枚金币。

样例 2 说明

(1,1)(1,1) 走到 (1,2)(1,2) 不花费金币
(1,2)(1,2) 走到 (2,2)(2,2) 花费 11 金币
施展魔法将 (2,3)(2,3) 变为黄色,从 (2,2)(2,2) 走到 (2,3)(2,3) 花费 22 金币
(2,3)(2,3) 走到 (3,3)(3,3) 不花费金币
(3,3)(3,3) 只能施展魔法到达 (3,2),(2,3),(3,4),(4,3)(3,2),(2,3),(3,4),(4,3),但这些点都无法到达 (5,5)(5,5),故无法到达终点。

数据规模与约定

对于全部的测试点,保证 1m1001 \leq m \leq 1001n10001 \leq n \leq 1000,起点 (1,1)(1,1) 一定有颜色。

本题改编自 NOIP 2017 普及组 T3