AT_icpc2015summer_day2_j 連結
题目描述
有一张含有 $N$ 个节点的图,第 $i$ 个节点的点权为 $a_i$。原来的图中一条边也没有。
你可以按某种顺序向图中添加 $M$ 条备选无向边中的 $m$ 条。这 $M$ 条备选边中,第 $i$ 条边连接点 $x_i$ 和点 $y_i$,边权为 $z_i$。
你需要使整张图连通。因此,你可以进行任意次数的选择还没有追加到图中的边中的正好一条追加到图中的操作。但是,在任意一次加边操作之前,都必须满足以下条件:
- 对于任何一个连通块,块内点权和不小于块内边权和。
判断目标是否可以达成。若是,请给出一种可行的方法。
输入格式
输入以以下格式从标准输入给出。
>$N$ $M$
>$a_1$ $a_2$ ... $a_N$
>$x_1$ $y_1$ $z_1$
>$x_2$ $y_2$ $z_2$
>...
>$x_M$ $y_M$ $z_M$
输出格式
若目标无法达成,输出 `-1`。
若目标可以达成,请在第一行输出添加的边数 $m(1\le m\le M)$,然后从第二行开始输出 $m$ 行,这 $m$ 行中的第 $k$ 行输出一个整数 $i_k$,表示第 $k$ 次添加的边的编号。
**建议在输出末尾添加换行。**
说明/提示
#### 样例 #1 解释
第 $2$ 条边必须最后一个加。
#### 样例 #2 解释
可能有重边。
#### 样例 #3 解释
即使将所有边添加上去,也不能使图连通。
#### 数据规模与约定
对于 $100\%$ 的测试点,数据保证:
- $2\le N\le 10^5$;
- $0\le a_i\le 10^9$;
- $1\le M\le 10^5$;
- $1\le x_i\lt y_i\le N$;
- $0\le z_i\le 10^9$;
- 输入的所有数据均为整数。