看着蝴蝶扑不过天涯,谁又有权不理解。
我们称一张无向图连带其上的两个点集 $L,R$ 是蝴蝶图当且仅当满足以下条件:
- $L\cup R$ 是整个点集。
- $L\cap R$ 非空。
- $L$ 中的任意两点可以只经过 $L$ 中的点互相到达。
- $R$ 中的任意两点可以只经过 $R$ 中的点互相到达。
给定一张有边权的蝴蝶图,求出一个边权和最小的边集,使得保留这个边集之后原图仍是蝴蝶图。
输入格式
第一行输入四个正整数 $n,m,l,r$,表示图的点数,边数以及 $L,R$ 的大小。
接下来 $m$ 行每行输入三个正整数 $u,v,w$ 表示一条边。
接下来一行 $l$ 个正整数表示点集 $L$。
接下来一行 $r$ 个正整数表示点集 $R$。
输出格式
输出一行一个正整数,表示最小的边权和。
样例数据
样例 1 输入
4 5 3 3 1 2 1 2 3 2 3 4 3 4 1 4 1 3 5 1 2 3 1 4 3
样例 1 输出
9
样例 2 输入
4 5 3 3 1 2 1 2 3 2 3 4 3 4 1 4 1 3 10 1 2 3 1 4 3
样例 2 输出
10
子任务
对于 $100\%$ 的数据,保证 $1\le n\le 10^5; n - 1\le m\le 2\times 10^5; 1\le l + r - n\le 11; 1\le u,v\le n; 1\le w\le 10^9$,且给定的图连带集合 $L,R$ 构成一张蝴蝶图。
对于 $50\%$ 的数据,保证 $n=100$,另外 $50\%$ 的数据保证 $n=10^5$。
它们各自有 $10$ 个测试点,测试点中 $l+r-n$ 的值分别为 $1,3,4,5,6,7,8,9,10,11$。