题目描述
Byteland 王国准备在各服务器间建立大型网络并提供多种服务。
网络由 n 台服务器组成,用双向的线连接。两台服务器之间最多只能有一条线直接连接,同时,每台服务器最多只能和 10 台服务器直接连接,但是任意两台服务器间必然存在一条路径将它们连接在一起。
每条传输线都有一个固定传输的速度。δ(v,w) 表示服务器 v 和 w 之间的最短路径长度,且对任意的 v 有 δ(v,v)=0。
有些服务器比别的服务器提供更多的服务,它们的重要程度要高一些。我们用 r(v) 表示服务器 v 的重要程度 rank。rank 越高的服务器越重要。
每台服务器都会存储它附近的服务器的信息。当然,不是所有服务器的信息都存,只有感兴趣的服务器信息才会被存储。服务器 v 对服务器 w 感兴趣是指,不存在服务器 u 满足,r(u)>r(w) 且 δ(v,u)≤δ(v,w)。
举个例子来说,所有具有最高 rank 的服务器都会被别的服务器感兴趣。如果 v 是一台具有最高 rank 的服务器,由于 δ(v,v)=0,所以 v 只对具有最高 rank 的服务器感兴趣。
我们定义 B(v) 为 v 感兴趣的服务器的集合。我们希望计算所有服务器储存的信息量,即所有服务器的 ∣B(v)∣ 之和。Byteland 王国并不希望存储大量的数据,所以所有服务器存储的数据量 (∣B(v)∣ 之和)不会超过 30n。
你的任务是写一个程序,读入 Byteland 王国的网络分布,计算所有服务器存储的数据量。
输入格式
第一行两个整数 n 和 m。n 表示服务器的数量,m 表示传输线的数量。
接下来 n 行,每行一个整数,第 i 行的整数为 r(i),表示第 i 台服务器的 rank。
接下来 m 行,每行表示各条传输线的信息,包含三个整数 a,b,t 。a 和 b 是传榆线所连接的两台服务器的编号,t 是传输线的长度。
输出格式
一个整数,表示所有服务器存储的数据总量,即 ∣B(v)∣ 之和。
提示
输出解释
B(1)={1,2},B(2)={2},B(3)={2,3},B(4)={1,2,3,4}。
数据规模
1≤n≤30000,1≤m≤5n
1≤r(i)≤10
1≤t≤1000,1≤a,b≤n,a=b