测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A10986. Minimal Labels

编程题 普及/提高-

题目描述

You are given a directed acyclic graph with $n$ vertices and $m$ edges. There are no self-loops or multiple edges between any pair of vertices. Graph can be disconnected.

You should assign labels to all vertices in such a way that:

- Labels form a valid permutation of length $n$ — an integer sequence such that each integer from $1$ to $n$ appears exactly once in it.
- If there exists an edge from vertex $v$ to vertex $u$ then $label_{v}$ should be smaller than $label_{u}$ .
- Permutation should be lexicographically smallest among all suitable.

Find such sequence of labels to satisfy all the conditions.

输入格式

The first line contains two integer numbers $n$ , $m$ ( $2<=n<=10^{5},1<=m<=10^{5}$ ).

Next $m$ lines contain two integer numbers $v$ and $u$ ( $1<=v,u<=n,v≠u$ ) — edges of the graph. Edges are directed, graph doesn't contain loops or multiple edges.

输出格式

Print $n$ numbers — lexicographically smallest correct permutation of labels of vertices.

输入输出样例

输入 #1
3 3
1 2
1 3
3 2
输出 #1
1 3 2 
输入 #2
4 5
3 1
4 1
2 3
3 4
2 4
输出 #2
4 1 2 3 
输入 #3
5 4
3 1
2 1
2 3
4 5
输出 #3
3 1 2 4 5 
上一题 去做题 下一题