元々のグラフを GG, つばきくんが1辺除いたあとのグラフを GG', GG'上の頂点 11 から k=1,2,3...k = 1,2,3... の最短距離をP1,P2,P3...P'_1, P'_2, P'_3...と呼ぶことにします。

(1) すべての頂点 vv について Pv=PvP_v = P'_v だったとき

このとき、GG' 上に辺がない2頂点に、PP' が変化しないような長さの辺を張ればよいです。 2頂点 u,vu, v に辺を張る際は、長さをPuPv|P_u - P_v|とすると、条件を満たす中で最短になります。

(2) いくつかの頂点 vv について、 Pv<PvP_v < P'_v だったとき

取り除いた辺の2つの端点が A,B(PA<PB)A, B (P_A < P_B) であったとします。 頂点の集合 V を、 Pi<PiP_i < P'_i を満たす頂点 ii の集合とすると、この中に BB が含まれて、 かつ集合内の BB 以外のすべての要素 ii について PB<PiP'_B < P'_iが成り立ちます。 なぜならば、Pi<PiP_i < P'_iであったとき、GG 上での 11から ii までの最短経路上につばきくんが取り除いた辺があったはずだからです。 よって、端点のひとつである BB が求まりました。

また、 BB を端点に持たない辺はどのようにしても条件を満たせないので、答えに BB は必ず含まれます。 もう一つの端点 uu として考えられるのは、Pu=PuかつPB>PuP_u = P'_u かつP'_B > P'_uかつBBからの辺が存在しない頂点で、 この中で番号が最小のものを選択し、長さは PBPu|P_B - P_u| にすればよいです