#P15915. [TOPC 2024] Kingdom' s Development Plan

[TOPC 2024] Kingdom' s Development Plan

说明

托普卡里亚王国计划开展一系列发展项目以提升其基础设施。每个项目都有特定的前置条件,必须在项目开始之前完成。发展部请你帮助确定一个可行的顺序,使得所有项目都能按顺序完成。

给定:

  • nn,表示项目的数量,编号从 11nn
  • mm,表示这些项目之间的前置关系数量。
  • mm 个关系对,每个对 (a,b)(a, b) 表示项目 aa 必须在项目 bb 开始之前完成。

你的任务是确定一个所有项目都能完成的顺序。如果由于循环依赖而无法完成所有项目,则输出 IMPOSSIBLE。如果存在多个有效顺序,请输出字典序最小的一个。

输入格式

第一行包含两个整数 nnmm,分别表示项目的数量和前置关系的数量。接下来的 mm 行,每行包含两个整数 aabb,表示一个前置关系对,即项目 aa 必须在项目 bb 之前完成。

输出格式

如果不可能完成,则输出 IMPOSSIBLE。如果可能完成所有项目,则输出一行包含 nn 个整数,表示一个有效的项目完成顺序。如果存在多个可能的顺序,请输出字典序最小的顺序。一个顺序的字典序比另一个顺序小,当且仅当在它们第一个不同的位置上,前一个顺序的项目编号小于后一个顺序的项目编号。

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

提示

  • 1n1051 \le n \le 10^5
  • 0m2×1050 \le m \le 2 \times 10^5
  • a,b{1,2,,n}a, b \in \{1, 2, \dots, n\}
  • aba \ne b
  • 给定的关系对没有重复。

翻译由 DeepSeek V3.2 完成