P1841 [JSOI2007] 重要的城市
题目描述
参加 jsoi 冬令营的同学最近发现,由于南航校内修路截断了原来通向计算中心的路,导致去的路程比原先增加了近一公里。而食堂门前施工虽然也截断了原来通向计算中心的路,却没有使路程增加,因为可以找到同样长度的路作替代。其实,问题的关键在于,路截断的地方是交通要点。
同样的情况也出现在城市间的交通中。某些城市如果出了问题,可能会引起其他很多城市的交通不便。另一些城市则影响不到别的城市的交通。jsoi 冬令营的同学发现这是一个有趣的问题,于是决定研究这个问题。
他们认为这样的城市是重要的:如果一个城市 $c$ 被破坏后,存在两个不同的城市 $a$ 和 $b$($a, b$ 均不等于 $c$),$a$ 到 $b$ 的最短距离增长了(或不通),则城市 $c$ 是重要的。
jsoi 冬令营的同学面对着一张教练组交给他们的城市间交通图,他们希望能找出所有重要的城市。现在就请你来解决这个问题。
输入格式
第一行两个整数 $N,M,N$ 为城市数,$M$ 为道路数。
接下来 $M$ 行,每行三个整数,表示两个城市之间的无向边,以及之间的路的长度。
输出格式
一行,按递增次序输出若干的数,表示重要的城市。如果不存在这样的城市,请输出 `No important cities.`。
说明/提示
- 对于 $30\%$ 的数据满足 $N\le 20$;
- 对于 $60\%$ 的数据满足 $N\le 100$;
- 对于 $100\%$ 的数据满足 $N\le 200,M\le \frac{N\times (N-1)}{2},0