P15000 [Nordic OI 2019] Graph Ordering

题目背景

Special Judge 来自于 [LibreOJ](https://loj.ac/p/4249)。

题目描述

给定一个具有 $n$ 个节点的无向连通图。节点编号为 $1, 2, \ldots, n$。 考虑一个节点的排序。排序中的第一个节点称为**源点**,最后一个节点称为**汇点**。此外,一条路径被称为**有效的**,当且仅当我们从节点 $a$ 移动到节点 $b$ 时,节点 $a$ 在排序中位于节点 $b$ 之前。 你的任务是找到一个排序,使得: - (1)从源点到每个节点都存在一条有效路径,并且 - (2)从每个节点到汇点都存在一条有效路径; 或者判断不可能创建这样的排序。

输入格式

- 第一行有两个整数 $n$ 和 $m$:分别表示节点数和边数。 - 之后是 $m$ 行,描述图中的边。每行包含两个整数 $a$ 和 $b$:表示节点 $a$ 和 $b$ 之间有一条边。 保证图是连通的,没有自环,并且任意两个节点之间最多有一条边。

输出格式

输出任意一个有效的节点排序。如果无解,则输出“IMPOSSIBLE”。

说明/提示

**子任务 1(7 分)** - $2 \leq n \leq 10^5$ - 图是一棵树。 **子任务 2(29 分)** - $2 \leq n \leq 100$ - $1 \leq m \leq 200$ **子任务 3(18 分)** - $2 \leq n \leq 2000$ - $1 \leq m \leq 5000$ **子任务 4(21 分)** - $2 \leq n \leq 10^5$ - $1 \leq m \leq 2 \cdot 10^5$ - 保证存在一个有效的排序,其中节点 1 为源点,节点 $n$ 为汇点。 **子任务 5(25 分)** - $2 \leq n \leq 10^5$ - $1 \leq m \leq 2 \cdot 10^5$ 翻译由 DeepSeek V3 完成