#aBC236G. [ABC236G] Good Vertices

[ABC236G] Good Vertices

AT_abc236_g [ABC236G] Good Vertices

题目描述

有一个包含 NN 个顶点的有向图。这 NN 个顶点分别被称为顶点 11、顶点 22\ldots、顶点 NN。在时刻 00,该图中没有任何边。

对于 t=1,2,,Tt = 1, 2, \ldots, T,在时刻 tt,会从顶点 utu_t 向顶点 vtv_t 添加一条有向边。(如果添加的边是自环,即 ut=vtu_t = v_t,也是允许的。)

从顶点 11 出发,恰好重复 LL 次“从当前所在的顶点出发,选择一条有向边,沿着这条边移动到一个新的顶点”的操作,能够到达的顶点被称为“好顶点”。

请对于 i=1,2,,Ni = 1, 2, \ldots, N,输出顶点 ii 首次成为好顶点的最小时刻。如果不存在这样的时刻,则输出 1-1

输入格式

输入以如下格式从标准输入读入。

NN TT LL
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uTu_T vTv_T

输出格式

请按照如下格式输出,对于 i=1,2,,Ni = 1, 2, \ldots, N,输出顶点 ii 首次成为好顶点的最小时刻 XiX_i。如果不存在这样的时刻,则 Xi=1X_i = -1

X1X_1 X2X_2 \ldots XNX_N

输入输出样例 #1

输入 #1

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

输出 #1

-1 4 5 3

输入输出样例 #2

输入 #2

2 1 1000000000
1 2

输出 #2

-1 -1

说明/提示

限制条件

  • 2N1002 \leq N \leq 100
  • 1TN21 \leq T \leq N^2
  • 1L1091 \leq L \leq 10^9
  • 1ut,vtN1 \leq u_t, v_t \leq N
  • ij(ui,vi)(uj,vj)i \neq j \Rightarrow (u_i, v_i) \neq (u_j, v_j)
  • 输入均为整数

样例说明 1

在时刻 00,图中没有任何边。之后,按照如下顺序添加边:

  • 时刻 11,从顶点 22 向顶点 33 添加有向边。
  • 时刻 22,从顶点 33 向顶点 44 添加有向边。
  • 时刻 33,从顶点 11 向顶点 22 添加有向边。此时,可以通过 12341 \rightarrow 2 \rightarrow 3 \rightarrow 4,恰好经过 33 次移动到达顶点 44,因此顶点 44 成为好顶点。
  • 时刻 44,从顶点 33 向顶点 22 添加有向边。此时,可以通过 12321 \rightarrow 2 \rightarrow 3 \rightarrow 2,恰好经过 33 次移动到达顶点 22,因此顶点 22 成为好顶点。
  • 时刻 55,从顶点 22 向顶点 22 添加有向边(自环)。此时,可以通过 12231 \rightarrow 2 \rightarrow 2 \rightarrow 3,恰好经过 33 次移动到达顶点 33,因此顶点 33 成为好顶点。

顶点 11 永远不会成为好顶点。

由 ChatGPT 4.1 翻译