3905 - 公交线路

题目描述

在一个城市中有 N 个公交站点,编号为 1N,共有 M双向的公交线路。每条公交线路连接两个站点,乘坐任意一条线路从一个站点到另一个站点需要 1 个单位时间

对于第 i 条连接了 U_iV_i 两个公交站点的线路,若 U_i \neq 0,则它连接站点 U_iV_i;若 U_i = 0,则表示该线路的一端固定为站点 V_i另一端尚未确定

你的任务是针对每个站点 ii = 1, 2, \ldots, N),假设所有未确定端点的公交线路的另一端都连接到站点 i,计算从站点 1 到站点 N 的最短时间。

如果无法通过公交线路从站点 1 到达站点 N,则输出 -1

输入

第一行包含两个整数 NM,分别表示公交站点的数量和公交线路的数量。

接下来 M 行,每行包含两个整数 U_iV_i,表示第 i 条公交线路的两个端点。若 U_i = 0,表示该线路一端为站点 V_i,另一端未定。

输出

输出一行,包含 N 个整数,用空格分隔。第 i 个整数表示当所有未确定端点的公交线路都连接到站点 i,从站点 1 到站点 N 的最短时间。若无法到达,输出 -1

样例

输入

3 2
0 2
1 2

输出

-1 -1 2

输入

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

输出

3 3 3 3 2

输入

12 13
1 7
7 10
10 11
11 12
4 12
3 9
0 12
4 9
2 6
2 11
0 7
3 6
8 10

输出

1 3 3 3 3 3 2 3 3 3 3 2
说明

样例 1 解释

  • 当未定端点连接到站点 1 时,第 1 条线路连接站点 12,第 2 条线路也连接站点 12。无法从站点 1 到达站点 3,输出 -1

  • 当未定端点连接到站点 2 时,第 1 条线路连接站点 22(自环),第 2 条线路连接站点 12。仍无法到达站点 3,输出 -1

  • 当未定端点连接到站点 3 时,第 1 条线路连接站点 32,第 2 条线路连接站点 12。可以通过以下路径从站点 1 到站点 31->2->3,耗时 2 个单位的时间。

因此,输出为 -1\ -1\ 2

数据范围

对于 100\% 的数据,满足 2 \leq N \leq 3 \times 10^51 \leq M \leq 3 \times 10^50 \leq U_i < V_i \leq N,对于任意 i \neq j 均满足 (U_i, V_i) \neq (U_j, V_j)

测试点数据范围特殊性质
12 \le N \le 201 \le M \le 30U_i \neq 0
2 \sim 32 \le N \le 201 \le M \le 30
4 \sim 72 \le N \le 30001 \le M \le 10^5
8 \sim 252 \leq N \leq 3 \times 10^51 \leq M \leq 3 \times 10^5
标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 2 枚
难度 基础


上一题 下一题