#abc270f. [abc270_f]Transportation
[abc270_f]Transportation
问题描述
AtCoder 共有 个岛屿。最初,这些岛屿都没有机场或港口,并且它们之间没有道路相连。国王高桥将在这些岛屿之间提供某种交通方式。具体来说,他可以按任意顺序任意次数执行以下操作。
- 选择一个整数 ,满足 ,并支付 的费用,在岛屿 上建造机场。
- 选择一个整数 ,满足 ,并支付 的费用,在岛屿 上建造港口。
- 选择一个整数 ,满足 ,并支付 的费用,建造一个双向连接岛屿 和岛屿 的道路。
高桥的目标是使每对不同的岛屿 和 都可以从岛屿 到达岛屿 ,可以按照以下方式任意次数地以任意顺序执行以下操作。
- 当岛屿 和 都有机场时,从岛屿 前往岛屿 。
- 当岛屿 和 都有港口时,从岛屿 前往岛屿 。
- 当岛屿 和 之间有道路时,从岛屿 前往岛屿 。
找出高桥需要支付的最小总费用,以实现他的目标。
约束条件
- ,若 。
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
输出
输出高桥需要支付的最小总费用。
样例输入 1
4 2
1 20 4 7
20 2 20 3
1 3 5
1 4 6
样例输出 1
16
高桥将建设以下基础设施。
- 支付 的费用,在岛屿 上建造机场。
- 支付 的费用,在岛屿 上建造机场。
- 支付 的费用,在岛屿 上建造港口。
- 支付 的费用,在岛屿 上建造港口。
- 支付 的费用,建造连接岛屿 和岛屿 的道路。
然后,目标将以费用 实现。无法以费用 或更少的方式实现目标,因此应打印 。
样例输入 2
3 1
1 1 1
10 10 10
1 2 100
样例输出 2
3
不必要每种类型的设施都至少建立一次。
样例输入 3
7 8
35 29 36 88 58 15 25
99 7 49 61 67 4 57
2 3 3
2 5 36
2 6 89
1 6 24
5 7 55
1 3 71
3 4 94
5 6 21
样例输出 3
160