#L4249. 「NordicOI 2019」Graph Ordering

    ID: 3396 传统题 1000ms 256MiB 尝试: 10 已通过: 0 难度: 6.5 上传者: 标签>数据结构动态规划图结构拓扑排序树结构DFS序列搜索DFS2019NordicOI

「NordicOI 2019」Graph Ordering

4249. 「NordicOI 2019」Graph Ordering

时间限制:1000 ms
内存限制:512 MiB
通过:4
提交:20

题目描述

题目译自 NordicOI 2019 T3 「Graph Ordering」

你有一个包含 nn 个节点的无向连通图。节点编号为 1,2,,n1, 2, \dots, n

我们来考虑节点的一个排列。排列中的第一个节点称为源节点,最后一个节点称为汇节点。此外,我们称一条路径是合法的,如果对于路径上的所有边 (a,b)(a,b),要从节点 aa 移动到节点 bb,节点 aa 在排列中的位置必须位于节点 bb 之前。

你的任务是找到一个排列,使得:

  1. 从源节点到每个节点都有一条合法的路径;
  2. 从每个节点到汇节点都有一条合法的路径。

或者判断不存在这样的排列。

输入格式

第一行有两个整数 nnmm,表示节点数和边数。

接下来有 mm 行描述这些边。每行有两个整数 aabb,表示节点 aa 和节点 bb 之间有一条边。

保证图是连通的,不包含自环,并且每对节点之间最多有一条边。

输出格式

输出任意一个合法的节点排列。如果不存在合法的方案,输出 IMPOSSIBLE

样例 1

输入

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

输出

4 2 3 1 5

样例 2

输入

4 3
1 2
3 2
4 2

输出

IMPOSSIBLE

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
1 77 2n1052 \leq n \leq 10^5:图是一棵树
2 2929 2n100,1m2002 \leq n \leq 100, 1 \leq m \leq 200
3 1818 2n2000,1m50002 \leq n \leq 2000, 1 \leq m \leq 5000
4 2121 2n105,1m2×1052 \leq n \leq 10^5, 1 \leq m \leq 2 \times 10^5:保证存在一个合法的排列,其中节点 11 是源节点,节点 nn 是汇节点
5 2525 2n105,1m2×1052 \leq n \leq 10^5, 1 \leq m \leq 2 \times 10^5