#3563. 地铁

地铁

题目描述

所有 Berland 城市的经典地铁网由 nn 个车站和 nn 条通道组成:每条通道恰好连接两个车站,且不经过其他任何车站。此外,在经典路网中,沿通道可以从任一车站到达任一其他车站。通道可以双向通行,每对车站之间至多一条通道。

Berland 的数学家们最近证明了一个定理:任何经典路网都恰有一个环线。换言之,在任何经典路网中,都能找到唯一的、由车站构成的环(环上相邻车站之间都有通道相连),且环上没有一个车站出现两次。

这个发现产生了巨大的社会影响:现在车站可以按"离环线的距离"来比较了。比如一个市民可以说"我住在离环线三条通道的地方",另一个可能回一句"你个失败者,我住的地方离环线只有一条通道"。很快,互联网上就充斥着各种宣称能算出车站到环线距离的应用……

Berland 政府决定终结这些乱象、掌控局面。请你写一个程序,根据城市地铁网,求出每个车站到环线的距离。

输入格式

第一行包含一个整数 nn(3≤n≤30003 \le n \le 3000),表示地铁网中的车站数(同时也就是通道数)。接下来 nn 行描述这些通道,每行一对整数 xi,yix_i, y_i(1≤xi,yi≤n1 \le x_i, y_i \le n),表示车站 xix_i 与 yiy_i 之间有一条通道。车站按任意顺序编号为 1 到 nn。保证 xi≠yix_i \ne y_i,且每对车站之间至多一条通道。通道可双向通行。保证给定的描述是一张经典地铁网。

输出格式

输出 nn 个数,用空格隔开:第 ii 个数等于第 ii 个车站到环线的距离。环线上的车站输出 0。

4
1 3
4 3
4 2
1 2
0 0 0 0
6
1 2
3 4
6 4
2 3
1 3
3 5
0 0 0 1 1 2