#P17292. [ONTAK 2014] 吃苹果(Jedz jabłka)

[ONTAK 2014] 吃苹果(Jedz jabłka)

题目描述

Bitlandia 是一个大小为 w×sw\times s 的矩形大陆,被划分成 wsw\cdot s1×11\times1 的国家。两个国家对应的方格若有公共边,则称它们相邻,每对相邻国家之间都有边境口岸。

Bajtocja 位于坐标 (1,1)(1,1)。苹果只能沿给定的有向边境通道运输。每条允许运输的通道都有一个费用,费用可以为负数;负费用表示运输时反而会获得补贴。

Bajtazar 希望从 Bajtocja 向大陆上所有国家运输苹果,并使总费用尽可能小。题目保证不存在可以通过沿某个回路反复运输而获得无限收益的情况,即图中不存在可达的负环。

对每个国家,求从 (1,1)(1,1) 运送一吨苹果到该国的最小费用;若无法到达,则输出字母 N

输入格式

第一行包含三个整数 w,s,kw,s,k

  • 1w801\le w\le80
  • 1s8001\le s\le800
  • 1k1000001\le k\le100000

接下来 kk 行,每行包含两个整数 ai,bia_i,b_i、一个字符 cic_i 和一个整数 did_i

a_i b_i c_i d_i

其中 1ais1\le a_i\le s1biw1\le b_i\le wci{N,E,S,W}c_i\in\{N,E,S,W\}10000di10000-10000\le d_i\le10000

这表示可以从国家 (ai,bi)(a_i,b_i) 向方向 cic_i 对应的相邻国家运输苹果,费用为 did_i

同一个有序国家对至多出现一次。

输出格式

输出 ww 行,每行 ss 个值。

ii 行第 jj 个值表示从 (1,1)(1,1) 到国家 (j,i)(j,i) 的最小费用。若不可达,则输出 N

样例输入

3 4 14
1 1 E 5
1 1 N 3
2 1 E 4
4 1 N 2
1 2 E -8
2 2 S 2
2 2 E 3
2 2 N 5
3 2 E -12
4 2 N -6
2 3 W -3
2 3 S -4
2 3 E 10
3 3 E 1

样例输出

0 -3 1 N
3 -5 -2 -14
-3 0 10 -20