P25753 [AtCoder] Good Vertices
提高+
题目描述

Problem Statement

We have a directed graph with N vertices.
The N vertices are called Vertex $1, Vertex 2, \ldots, Vertex N$.
At time 0, the graph has no edge.
For each $t = 1, 2, \ldots, T, at time t, a$ directed edge from Vertex u_t to Vertex v_t will be added.
(The edge may be a self-loop, that is, u_t = v_t may hold.)
A vertex is called good when it can be reached by starting at Vertex 1 and traversing an edge exactly L times.
For each $i = 1, 2, \ldots, N$, print the earliest time when Vertex i is good. If there is no time when Vertex i is good, print -1 instead.

Input

Input is given from Standard Input in the following format:
N T L
u_1 v_1
u_2 v_2
$\vdots$
u_T v_T

Output

In the following format, for each $i = 1, 2, \ldots, N$, print the earliest time X_i when Vertex i is good. If there is no time when Vertex i is good, X_i should be -1.
$X_1 X_2 \ldots X_N$

Constraints

  • $2 \leq N \leq 100$
  • $1 \leq T \leq N^2$
  • $1 \leq L \leq 10^9$
  • $1 \leq u_t, v_t \leq N$
  • $i \neq j \Rightarrow (u_i, v_i) \neq (u_j, v_j)$
  • All values in input are integers.

Sample Input 1

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

Sample Output 1

-1 4 5 3

At time 0, the graph has no edge. Afterward, edges are added as follows.

  • At time 1, a directed edge from Vertex 2 to Vertex 3 is added.
  • At time 2, a directed edge from Vertex 3 to Vertex 4 is added.
  • At time 3, a directed edge from Vertex 1 to Vertex 2 is added. Now, Vertex 4 can be reached from Vertex 1 in exactly three moves: $1 \rightarrow 2 \rightarrow 3 \rightarrow 4, making Vertex 4$ good.
  • At time 4, a directed edge from Vertex 3 to Vertex 2 is added. Now, Vertex 2 can be reached from Vertex 1 in exactly three moves: $1 \rightarrow 2 \rightarrow 3 \rightarrow 2, making Vertex 2$ good.
  • At time 5, a directed edge (self-loop) from Vertex 2 to Vertex 2 is added. Now, Vertex 3 can be reached from Vertex 1 in exactly three moves: $1 \rightarrow 2 \rightarrow 2 \rightarrow 3, making Vertex 3$ good.

Vertex 1 will never be good.

Sample Input 2

2 1 1000000000
1 2

Sample Output 2

-1 -1

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
4 5 3 2 3 3 4 1 2 3 2 2 2
样例输出
-1 4 5 3