E : 勇攀黄龙山

Progress Bar

时间限制:1 Sec 内存限制:256 MiB

提交


题目描述

爬山是Reverie最喜欢的活动之一。

黄龙山一共有n座小山,小山之间有m条路。

Reverie初始有k点体力,在爬山的过程中,她所处的海拔每上升1m,体力会减1点,海拔每下降1m,体力会加1点。

现在Reverie想从1号山走到n号山,在这个过程中,她的体力不能低于0。

所以她可以事先花费一些费用请挖掘机把某些山降低,将一座山降低l米需要花费l×l的代价,且每座山的高度只能降低一次。

因为Reverie现在就在1号山上,所以这座山的高度不可降低。

Reverie从1号山到n号山的总代价为降低山的高度的总代价加上她走过的路的总长度。

Reverie想知道最小的代价是多少。

输入描述

第一行三个整数n,m,k。

接下来一行n个整数,分别表示第1道n座山的高度。

接下来m行,每行三个整数x,y,z表示山x和山y之间有一条长度为z的双向道路。

经过每条路时海拔是一个单调上升或下降的过程。

数据保证1号山和n号山联通。

1≤n,k,h,z≤10^5

1≤m≤2×10^5

1≤x,y≤n

x≠y

输出描述

一行一个整数表示答案。

样例输入

4 5 1
1 2 3 4
1 2 1
1 3 1
1 4 100
2 4 1
3 4 1

样例输出

6

来源

Wannacry-02