#cpsco2019s4f. [cpsco2019_s4_f]Lost Tree

[cpsco2019_s4_f]Lost Tree

配点 : 800800

出力する木の辺の重みに関する問題文の修正を行いました。ご迷惑をおかけして申し訳御座いません。(12:06)

問題文

ラスク君は木を持っていましたが、なくしてしまいました。

この木は、頂点に 11 以上頂点数以下の相異なる整数の番号がついていて、各辺には 11 以上 10910^9 以下の整数の重みが定まっていました。

頂点数は KK 以上 10001000 以下であり、1leqi,jleqK1 \\leq i, j \\leq K に対し、頂点 ii と頂点 jj の距離は DijD_{ij} でした。ただし、頂点 ii と頂点 jj の距離とは、頂点 ii と頂点 jj を結ぶ単純パスに含まれる辺の重みの総和のことをいいます。

これらの情報から、ラスク君の持っていた木として考えられるものを一つ出力してください。なお、この問題で与えられる入力に対しては、いずれも条件に整合する木が少なくとも一つ存在することが保証されています。

制約

  • 入力はすべて整数である。
  • 2leqKleq3002 \\leq K \\leq 300
  • i<ji < j のとき 1leqDijleq1091 \\leq D_{ij} \\leq 10^9
  • Dij=DjiD_{ij}=D_{ji}
  • Dii=0D_{ii}=0
  • 問題文の条件を満たす木が少なくとも 11 つ存在する。

入力

入力は以下の形式で標準入力から与えられる。

KK D11D_{11} D12D_{12} ldots\\ldots D1KD_{1K} D21D_{21} D22D_{22} ldots\\ldots D2KD_{2K} : DK1D_{K1} DK2D_{K2} ldots\\ldots DKKD_{KK}

出力

ラスク君の持っていた木として考えられるものを一つ、次の形式で出力せよ。

NN a1a_1 b1b_1 c1c_1 a2a_2 b2b_2 c2c_2 : aN1a_{N-1} bN1b_{N-1} cN1c_{N-1}

頂点数が NN で、頂点 aia_i と頂点 bib_i を重み cic_i の辺でつないでできるグラフが条件を満たす木になるとき、正解となる。

条件を満たす木が複数考えられる場合、どれを出力してもよい。

ただし、cic_i の値は 11 以上 10910^9 以下の整数である必要があります。


入力例 1

4
0 3 4 5
3 0 5 6
4 5 0 7
5 6 7 0

出力例 1

5
1 5 1
4 5 4
5 2 2
5 3 3

例えば、下図のような木が条件を満たします。


入力例 2

3
0 2 3
2 0 5
3 5 0

出力例 2

4
1 4 1
1 2 2
4 3 2

例えば、下図のような木が条件を満たします。


入力例 3

5
0 5 6 3 5
5 0 7 6 6
6 7 0 7 3
3 6 7 0 6
5 6 3 6 0

出力例 3

8
4 6 2
6 1 1
2 7 3
7 8 2
7 6 1
5 8 1
8 3 2