#aBC237E. [ABC237E] Skiing

[ABC237E] Skiing

AT_abc237_e [ABC237E] Skiing

题目描述

AtCoder 滑雪场有 NN 个广场,分别为广场 11、广场 22\ldots、广场 NN,其中广场 ii 的海拔高度为 HiH_i。此外,有 MM 条双向坡道,每条坡道连接两个广场,第 ii 条坡道连接广场 UiU_i 和广场 ViV_i。任意两个广场之间都可以通过若干条坡道互相到达。

高桥君只能通过坡道在广场之间移动,每经过一条坡道,快乐值会发生变化。具体来说,当他从广场 XX 通过直接连接的坡道移动到广场 YY 时,快乐值的变化如下:

  • 如果广场 XX 的海拔严格高于广场 YY,则快乐值增加 HXHYH_X-H_Y
  • 如果广场 XX 的海拔严格低于广场 YY,则快乐值减少 2(HYHX)2(H_Y-H_X)
  • 如果广场 XX 和广场 YY 的海拔相等,则快乐值不变。

快乐值可以为负数。

最开始,高桥君在广场 11,快乐值为 00。他可以经过若干条(也可以一条都不经过)坡道移动,最后停留在任意一个广场。请你求出他最终可能获得的最大快乐值。

输入格式

输入按以下格式从标准输入读入:

NN MM
H1H_1 H2H_2 \ldots HNH_N
U1U_1 V1V_1
U2U_2 V2V_2
\vdots
UMU_M VMV_M

输出格式

输出一个整数,表示高桥君最终可能获得的最大快乐值。

输入输出样例 #1

输入 #1

4 4
10 8 12 5
1 2
1 3
2 3
3 4

输出 #1

3

输入输出样例 #2

输入 #2

2 1
0 10
1 2

输出 #2

0

说明/提示

限制条件

  • 2N2×1052 \leq N \leq 2\times 10^5
  • $N-1 \leq M \leq \min(2\times 10^5, \frac{N(N-1)}{2})$
  • 0Hi1080 \leq H_i \leq 10^81iN1 \leq i \leq N
  • 1Ui<ViN1 \leq U_i < V_i \leq N1iM1 \leq i \leq M
  • iji \neq j,则 (Ui,Vi)(Uj,Vj)(U_i, V_i) \neq (U_j, V_j)
  • 所有输入均为整数。
  • 任意两个广场之间都可以通过若干条坡道互相到达。

样例解释 1

从广场 11 \to 广场 33 \to 广场 44 移动时,快乐值变化如下:

  • 从广场 11(海拔 1010)通过坡道到广场 33(海拔 1212),快乐值减少 2×(1210)=42\times(12-10)=4,变为 04=40-4=-4
  • 从广场 33(海拔 1212)通过坡道到广场 44(海拔 55),快乐值增加 125=712-5=7,变为 4+7=3-4+7=3

如果在这里结束行动,最终快乐值为 33,这是可能获得的最大值。

样例解释 2

如果一次也不移动,快乐值就是最大值。

由 ChatGPT 4.1 翻译