#abc051d. [abc051_d]Candidates of No Shortest Paths

[abc051_d]Candidates of No Shortest Paths

問題文

自己ループと二重辺を含まない NN 頂点 MM 辺の重み付き無向連結グラフが与えられます。
i(1iM)i (1≦i≦M) 番目の辺は頂点 aia_i と頂点 bib_i を距離 cic_i で結びます。
ここで、自己ループは ai=bi(1iM)a_i = b_i (1≦i≦M) となる辺のことを表します。
また、二重辺は (ai,bi)=(aj,bj)(a_i,b_i)=(a_j,b_j) または (ai,bi)=(bj,aj)(1i<jM)(a_i,b_i)=(b_j,a_j) (1≦i<j≦M) となる辺のことを表します。
連結グラフは、どの異なる 22 頂点間にも経路が存在するグラフのことを表します。
どの異なる 22 頂点間の、どの最短経路にも含まれない辺の数を求めてください。

制約

  • 2N1002≦N≦100
  • N1Mmin(N(N1)/2,1000)N-1≦M≦min(N(N-1)/2,1000)
  • 1ai,biN1≦a_i,b_i≦N
  • 1ci10001≦c_i≦1000
  • cic_i は整数である。
  • 与えられるグラフは自己ループと二重辺を含まない。
  • 与えられるグラフは連結である。

入力

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

NN MM
a1a_1 b1b_1 c1c_1
a2a_2 b2b_2 c2c_2 ::
aMa_M bMb_M cMc_M

出力

グラフ上の、どの異なる 22 頂点間の、どの最短経路にも含まれない辺の数を出力せよ。


入力例 1

3 3
1 2 1
1 3 1
2 3 3

出力例 1

1

この入力例で与えられるグラフにおける、全ての異なる 22 頂点間の最短経路は以下の通りです。

  • 頂点 11 から頂点 22 への最短経路は、頂点 11 → 頂点 22 で経路長は 11
  • 頂点 11 から頂点 33 への最短経路は、頂点 11 → 頂点 33 で経路長は 11
  • 頂点 22 から頂点 11 への最短経路は、頂点 22 → 頂点 11 で経路長は 11
  • 頂点 22 から頂点 33 への最短経路は、頂点 22 → 頂点 11 → 頂点 33 で経路長は 22
  • 頂点 33 から頂点 11 への最短経路は、頂点 33 → 頂点 11 で経路長は 11
  • 頂点 33 から頂点 22 への最短経路は、頂点 33 → 頂点 11 → 頂点 22 で経路長は 22

したがって、一度も最短経路として使用されていない辺は、頂点 22 と頂点 33 を結ぶ長さ 33 の辺のみであるため、11 を出力します。


入力例 2

3 2
1 2 1
2 3 1

出力例 2

0

全ての辺が異なる 22 頂点間のある最短経路で使用されます。