U219895 瓜皮旅行团(终极)

题目背景

为了参加“瓜皮自有黄金屋”比赛,瓜皮们都十分拼命,导致大家都非常的劳累与辛苦。小杨(原名“ziruiya”)作为一名有素质的赛事主办方,十分理解各位瓜皮的辛苦,于是决定带大家到全世界的瓜皮景点散散心。

题目描述

不过,有些景点与景点之间有通过的路,但有些没有。 路一共被分为三种: ①畅通之路,可直接通过。 ②高速之路,需要交 $x$ 元才可以通过。 ③优惠之路,可以免费赠送 $x$ 元。 对于每一条路,只可以单向通过,即: $1,3$ 相连,则 $1\to3$ 合法,但 $3\to1$ 不合法。 现在有 $n$ 个瓜皮景点, $m$ 条路,并从第 $s$ 个景点进入,第 $t$ 个景点出来,请你帮帮小杨求出最少的花费元数吧!(不一定每个景点都要去,也不是每个景点最多去 $1$ 遍) 由于小杨被要求马上写出方案,又不想浪费太多内存(虽然电脑升级了,但电脑被游戏[偷偷告诉你,游戏名曰Minecraft,最占内存的游戏]占领了,也就剩下 $1$MB),所以请你在 $150ms$ 的时间和 $1$MB (这可是全部财产!)的内存下完成。

输入格式

共 $m+2$ 行,其中: 第 $1$ 行,两个整数 $n,m$ ,分别表示景点个数和路个数。 第 $2$ 到 $m+1$ 行,每行先输入三个整数 $a,b,c$ ,表示第 $a$ 个景点到第 $b$ 个景点有一条属于 $c$ 类型的路: 如果 $c = 1$ ,则此路为畅通之路。 如果 $c = 2$ ,则此路为高速之路,后面再输入一个数 $k$ ,表示收费 $k$ 元。 如果 $c = 3$ ,则此路为优惠之路,后面再输入一个数 $k$ ,表示赠送 $k$ 元。 第 $m+2$ 行,两个整数 $s,t$ ,表示从第 $s$ 个景点进入,第 $t$ 个景点出来。(保证 $s$ 不等于 $t$ )

输出格式

第一行,一个整数,表示从第 $s$ 个景点到第 $t$ 个景点所需花费最少的元数。(无法到达,答案超过 $100000000$ ,或者存在一个环路可以无限刷钱,均输出" $Nonsense!$ ") 第二行,输出满足要求的最短路径,形式如下: “$a_n\gets a_{n-1}\gets\dots\gets a_5\gets a_4\gets a_3\gets a_2\gets a_1$”,共过了 $n$ 个景点。 (如果有多条,输出字典序最大的)

说明/提示

$1 ≤ n ≤ 50000$ $1 ≤ m ≤ 1000$ $1 ≤ a,b ≤ n$ $1 ≤ c ≤ 3$ $1 ≤ k ≤ 100$ $1 ≤ s,t ≤ n$ ### 本题为[yzc20100218](https://www.luogu.com.cn/user/510713)原创,未经允许,禁止改编、套用