Rinne Loves Edges
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

Rinne  最近了解了如何快速维护可支持插入边删除边的图,并且高效的回答一下奇妙的询问。
她现在拿到了一个 n 个节点 m 条边的无向连通图,每条边有一个边权 w_i
现在她想玩一个游戏:选取一个 “重要点” S,然后选择性删除一些边,使得原图中所有除 S 之外度为 1 的点都不能到达 S。
定义删除一条边的代价为这条边的边权,现在 Rinne 想知道完成这个游戏的最小的代价,这样她就能轻松到达 rk1 了!作为回报,她会让你的排名上升一定的数量。

输入描述:

第一行三个整数 N,M,S,意义如「题目描述」所述。

接下来 M 行,每行三个整数 u,v,w 代表点 u 到点 v 之间有一条长度为 w 的无向边。

输出描述:

一个整数表示答案。
示例1

输入

复制
4 3 1 
1 2 1 
1 3 1 
1 4 1

输出

复制
3

说明

需要使得点 2,3,4 不能到达点 1,显然只能删除所有的边,答案为 3
示例2

输入

复制
4 3 1 
1 2 3 
2 3 1 
3 4 2

输出

复制
1

说明

需要使得点 4 不能到达点 1,显然删除边 2 \leftrightarrow 3是最优的。

备注:

,保证答案在 C++ long long 范围内。