A102289.雾港城的道路网

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

雾港城的道路网是一张无向带权图。每个路口 ii 都有一个“标高” h[i]h[i]
你要从起点 SS 走到终点 TT,路径的总代价为经过道路长度之和。

但夜里巡逻有规定:一路上标高只能 先不下降、再不上升(允许相等)。
也就是说,存在某个位置(可以在起点或终点),使得整条路径的标高序列满足:

  • 前半段:标高单调不下降;
  • 后半段:标高单调不上升;

中途只允许发生一次“从上升到下降”的大转折(不转折也算合法)。

请你求出满足规定的最短路长度;若不存在合法路径输出 1-1

输入格式

第一行四个整数 n,m,S,Tn,m,S,T,表示点数、边数、起点、终点。
第二行 nn 个整数 h[1],h[2],,h[n]h[1],h[2],\dots,h[n]
接下来 mm 行,每行三个整数 u,v,wu,v,w,表示一条无向边 (u,v)(u,v),边权为 ww

输出格式

输出一个整数,表示最短合法路径长度;若无解输出 1-1

输入输出样例

  • 输入#1

    6 6 1 6
    1 3 5 4 2 1
    1 2 2
    2 3 2
    3 4 2
    4 5 2
    5 6 2
    2 5 1

    输出#1

    5

说明/提示

样例解释

解释:若直接走 1-2-5-6,标高为 1,3,2,1,中间先上升再下降,合法,代价为 2+1+2=52+1+2=5
1-2-3-4-5-6 的标高 1,3,5,4,2,1 也是“先不降后不上”,代价更大。
所以答案为 55

数据范围与测试点

  • 1n2000001\le n\le200000
  • 0m2000000\le m\le200000
  • 1w1091\le w\le10^9
  • 1h[i]1091\le h[i]\le10^9
测试点编号 nn 上界
141\sim4 n20n\le20
5105\sim10 n10000n\le10000
112011\sim20 n200000n\le200000
首页