题目描述
题目描述
在平津战场上,敌军沿着以北平、天津为中心的铁路摆成一条绵长防线,并准备在形势不利时分别向东西两侧撤退。为了阻断退路、避免各部敌军互相支援,指挥部决定先切断关键交通线,使各处敌军彼此隔离,再分别展开进攻。
现在的战场被抽象为 座城市和 条双向公路。任意两座城市之间原本都能互相到达,因此整个公路网是一棵树。共有 座城市被敌方军团占领,每座被占领城市中有一支需要单独处理的军团。
破坏每条公路都要付出给定代价。你需要选择若干条公路将其破坏,使剩余道路中任意两座被敌军占领的城市之间都不存在通路,也就是每个剩余连通区域至多包含一支敌方军团。在完成隔离的前提下,请让被破坏公路的总代价尽可能小。
输入格式
第一行包含两个整数 ,分别表示城市数量和被敌军占领的城市数量。
第二行包含 个互不相同的整数,表示被敌军占领的城市编号。
接下来 行,每行包含三个整数 ,表示城市 与城市 之间有一条双向公路,破坏这条公路的代价为 。城市编号从 开始。
输出格式
输出一行一个整数,表示使所有敌军城市两两隔离所需的最小总代价。
5 3
1 2 4
1 0 4
1 3 8
2 1 1
2 4 3
4
样例说明 #1
选择代价合计为 的道路进行破坏即可使三座敌军城市互不连通。
2 2
0 1
0 1 9
9
样例说明 #2
两座城市都被占领,只能破坏它们之间唯一的道路。
4 2
0 3
0 1 5
1 2 2
2 3 7
2
样例说明 #3
比较保留高代价道路所形成的连通块,可以只破坏代价较小的必要道路。
数据范围与约定
对于 的数据,。
对于全部数据,,,,。输入的 条公路保证构成一棵树,被占领城市互不相同。