在一个国家里,有 n 个城市(编号为 0 到 n-1)。这些城市之间有 n 条双向道路相连(编号为 0 到 n-1),其中编号为 i 的道路连接了城市 i 和城市 r_i(一条道路可以连接一个城市和它自身),长度为 d_i。n 个城市中有 m 个拥有自己城堡,可以抵御敌人侵略。如果没有城堡的城市遭受攻击,则离它最近的城堡将派兵前往救援。
你的任务是在不超过 k 个没有城堡的城市中建立城堡,使得所有城市中“离最近城堡的距离”的最大值尽量小。换句话说,若令 dist(c) 表示城市 c 的最近城堡离它的距离,则你的任务是让 \max{dist(c)} 尽量小。
输入数据保证存在方案使得对于每个城市,至少有一个城堡能够到达。