CF1520G To Go Or Not To Go?

题目描述

给定一个 $n\times{m}$ 的网格,每个格子 $(i,j)$ 都有一个整数参数 $a_{ij}(-1\leq a_{ij}\leq10^9)$ , $a_{ij}=-1$ 表示这个格子不能通过;否则,这个格子可以通过,若 $a_{ij}>0$ 则表示这个格子内有一个传送门。 现在小D想要从 $(1,1)$ 移动到到 $(n,m)$ ,它可以以如下两种方式移动: - 在任意两个相邻且参数均不为$-1$的格子间移动,花费为 $w$ ; - 在有传送门的两个格子 $(i,j)$ 和 $(x,y)$ 间移动,花费为 $a_{ij}+a_{xy}$ 。 求小D所需的最小花费。

输入格式

第一行输入三个整数 $n,m,w$ $(1\leq n,m\leq2\times{10^3}$ ,$1\leq w\leq10^9)$ 。 接下来 $n$ 行,每行 $m$ 个数,第 $i$ 行的第 $j$ 个数表示 $a_{ij}$ 。

输出格式

输出小D的最小花费。若她无法由 $(1,1)$ 行到 $(n,m)$ ,输出 $-1$ 。

说明/提示

Explanation for the first sample: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1520G/ea46ca31aaddfd44d7bddd438bd08f0588c7e1e0.png)