

Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 500 点
問題文
N 頂点の根付き木 (注記を参照) があり、その頂点には 1 から N までの番号が振られています。 根以外の各頂点には、その親から一本の有向辺が伸びています。 なお、根は頂点 1 とは限りません。
高橋くんは、このグラフに M 本の新たな有向辺を書き加えました。 書き足された各辺 u \rightarrow v は、ある頂点 u からその子孫であるような頂点 v に向かって伸びています。
高橋くんが辺を書き加えたあとの N 頂点 N-1+M 辺の有向グラフが与えられます。 より具体的には、N-1+M 組の整数のペア (A_1, B_1), ..., (A_{N-1+M}, B_{N-1+M}) が与えられ、これらは i 番目の辺が頂点 A_i から頂点 B_i に向かって伸びていることを表します。
元の根付き木を復元してください。
注記
「木」や関連するグラフ理論の用語に関しては、Wikipediaの記事などをご覧ください。
制約
- 3 \leq N
- 1 \leq M
- N + M \leq 10^5
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- i \neq j ならば (A_i, B_i) \neq (A_j, B_j)
- 入力されるグラフは、N 頂点の根付き木に問題文中の条件を満たす M 本の辺を書き足すことで得られる。
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 B_1 : A_{N-1+M} B_{N-1+M}
出力
N 行出力せよ。
i 行目には、頂点 i が元の木の根であれば 0
を出力し、そうでなければ元の木で頂点 i の親を表す整数を出力すること。
なお、元の木は一意に定まることが示せる。
入力例 1
3 1 1 2 1 3 2 3
出力例 1
0 1 2
入力されたグラフは次のようなものです。
これは、1 \rightarrow 2 \rightarrow 3 という根付き木に辺 1 \rightarrow 3 を書き足したものであると考えられます。
入力例 2
6 3 2 1 2 3 4 1 4 2 6 1 2 6 4 6 6 5
出力例 2
6 4 2 0 6 2
Score : 500 points
Problem Statement
There is a rooted tree (see Notes) with N vertices numbered 1 to N. Each of the vertices, except the root, has a directed edge coming from its parent. Note that the root may not be Vertex 1.
Takahashi has added M new directed edges to this graph. Each of these M edges, u \rightarrow v, extends from some vertex u to its descendant v.
You are given the directed graph with N vertices and N-1+M edges after Takahashi added edges. More specifically, you are given N-1+M pairs of integers, (A_1, B_1), ..., (A_{N-1+M}, B_{N-1+M}), which represent that the i-th edge extends from Vertex A_i to Vertex B_i.
Restore the original rooted tree.
Notes
For "tree" and other related terms in graph theory, see the article in Wikipedia, for example.
Constraints
- 3 \leq N
- 1 \leq M
- N + M \leq 10^5
- 1 \leq A_i, B_i \leq N
- A_i \neq B_i
- If i \neq j, (A_i, B_i) \neq (A_j, B_j).
- The graph in input can be obtained by adding M edges satisfying the condition in the problem statement to a rooted tree with N vertices.
Input
Input is given from Standard Input in the following format:
N M A_1 B_1 : A_{N-1+M} B_{N-1+M}
Output
Print N lines.
In the i-th line, print 0
if Vertex i is the root of the original tree, and otherwise print the integer representing the parent of Vertex i in the original tree.
Note that it can be shown that the original tree is uniquely determined.
Sample Input 1
3 1 1 2 1 3 2 3
Sample Output 1
0 1 2
The graph in this input is shown below:
It can be seen that this graph is obtained by adding the edge 1 \rightarrow 3 to the rooted tree 1 \rightarrow 2 \rightarrow 3.
Sample Input 2
6 3 2 1 2 3 4 1 4 2 6 1 2 6 4 6 6 5
Sample Output 2
6 4 2 0 6 2