#abc239g. [abc239_g]Builder Takahashi
[abc239_g]Builder Takahashi
题目描述
我们有一个简单的连通无向图,有 个顶点和 条边。
顶点编号为 、、……、。
边编号为 、、……、。第 条边双向连接了顶点 和顶点 。没有直接连接顶点 和顶点 的边。
每个顶点要么为空,要么被一面墙占据。初始时,每个顶点都为空。
Aoki 打算沿着图上的边从顶点 出发,前往顶点 。但是,Aoki 不允许移动到被墙占据的顶点。
Takahashi 决定在某些顶点上建墙,以便无论 Aoki 选择哪条路线,都无法到达顶点 。
在顶点 上建墙将花费 Takahashi 日元(日本的货币单位)。 他不能在顶点 和顶点 上建墙。
Takahashi 需要多少日元才能建造这些墙以满足条件?并且,输出建造墙的最小代价方式。
约束条件
- 给定的图是简单的和连通的。
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入读取:
输出
以以下格式输出。其中, 和 定义如下。
- 是 Takahashi 需要支付的代价
- 是 Takahashi 需要在哪些顶点上建墙
- 是 Takahashi 将在哪些顶点上建墙的序列
如果有多种建造墙的方式能满足最小代价的条件,则输出其中任意一种即可。
示例输入 1
5 5
1 2
2 3
3 5
2 4
4 5
0 8 3 4 0
示例输出 1
7
2
3 4
如果 Takahashi 在顶点 和顶点 上建墙,支付 日元,则 Aoki 无法从顶点 到达顶点 。
没有比这更低的代价满足条件,所以答案是 日元。
示例输入 2
3 2
1 2
2 3
0 1 0
示例输出 2
1
1
2
示例输入 3
5 9
1 2
1 3
1 4
2 3
2 4
2 5
3 4
3 5
4 5
0 1000000000 1000000000 1000000000 0
示例输出 3
3000000000
3
2 3 4