AT_asaporo2_a Colorful MST

题目描述

无向图 $G$ 有 $N$ 个顶点和 $M$ 条边。顶点的编号为 $1$ 到 $N$,第 $i$ 条边连接点 $a_i$ 和点 $b_i$,长度为 $w_i$。 有 $K$ 种颜色,编号 $1$ 到 $K$。图 $G$ 中的一些点已经被染了这 $K$ 种颜色中的某一种,还有一些点没有被染色。点 $i$ 染的颜色用 $c_i$ 表示,当 $c_i=0$ 时,点 $i$ 未被染色。 你需要把 $G$ 中未被染色的点也染上这 $K$ 种颜色,每个点染一种。染完后,按照下面的方法构造无向图 $G'$: - 画 $K$ 个顶点,编号 $1$ 到 $K$。 - 画 $M$ 条边,第 $i$ 条边连接的两个点的编号为图 $G$ 中第 $i$ 条边所连接的两个点的颜色编号,长度与图 $G$ 中第 $i$ 条边的长度一致。 若 $G'$ 可连通,求出其最小生成树大小;否则,输出 $-1$。

输入格式

第一行输入三个整数 $N,M,K$。 第二行输入 $N$ 个整数,表示数列 $c$。 接下来 $M$ 行,每行输入三个整数 $a_i,b_i,w_i$,表示图 $G$ 中第 $i$ 条边的信息。

输出格式

一行一个整数。

说明/提示

#### 样例 #1 解释 当且仅当点 $2$ 染上颜色 $3$ 时,图 $G'$ 连通。 #### 样例 #2 解释 无论怎么染色,两条边是不可能使四个点连通的。 #### 数据规模与约定 对于全部测试点,保证: - $1\le N,M\le 10^5$,$1\le K\le N$; - $0\le c_i\le K$,$1\le a_i,b_i\le N$,$1\le w_i\le 10^9$。 **不保证** 给定的图 $G$ 连通,没有重边或自环。 #### 子任务 本题在 AT 上满分 $700$。AT 采取捆绑测试。 - 对于前 $100$ 分的测试数据,保证 $N=K$ 且 $c_i=i$; - 对于另外 $100$ 分的数据,保证 $c_i\neq 0$; - 对于另外 $200$ 分的数据,保证 $c_i=0$; - 对于剩余的数据,无特殊限制。