#P005820. 公交线路

    ID: 5820 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>25-7-C组月赛T3最短路基础图论普及/提高−

公交线路

题目描述

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

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

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

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

输入格式

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

接下来 MM 行,每行包含两个整数 UiU_iViV_i,表示第 ii 条公交线路的两个端点。若 Ui=0U_i = 0,表示该线路一端为站点 ViV_i,另一端未定。

输出格式

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

样例 #1

输入

3 2
0 2
1 2

输出

-1 -1 2

数据范围

对于 100%100\% 的数据,满足 2N3×1052 \le N \le 3 \times 10^51M3×1051 \le M \le 3 \times 10^50Ui<ViN0 \le U_i < V_i \le N