#P1347. 排序(Sorting It All Out)

0
    ID: 8490 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P1347拓扑排序与 Kahn 算法拓扑排序图论CSP-S

排序(Sorting It All Out)

排序(Sorting It All Out)

题目描述

一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列 A,B,C,DA,B,C,D 表示 A<B,B<C,C<DA<B,B<C,C<D。在这道题中,我们将给你一系列形如 A<BA<B 的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序。

输入格式

第一行有两个正整数 n,mn,m,nn 表示需要排序的元素数量,2≤n≤262\leq n\leq 26,第 11 到 nn 个元素将用大写的 A,B,C,D,…A,B,C,D,\dots 表示。mm 表示将给出的形如 A<BA<B 的关系的数量。

接下来有 mm 行,每行有 33 个字符,分别为一个大写字母,一个 < 符号,一个大写字母,表示两个元素之间的关系。

输出格式

若根据前 xx 个关系即可确定这 nn 个元素的顺序 yyy..y(如 ABC),输出

Sorted sequence determined after x relations: yyy...y.

其中 xx 表示上述的前 xx 个关系。

若根据前 xx 个关系即发现存在矛盾(如 A<B,B<C,C<AA<B,B<C,C<A),输出

Inconsistency found after x relations.

其中 xx 表示的意义同上。

若根据这 mm 个关系无法确定这 nn 个元素的顺序,输出

Sorted sequence cannot be determined.

(提示:确定 nn 个元素的顺序后即可结束程序,可以不用考虑确定顺序之后出现矛盾的情况)

样例输入 #1

4 6
A<B
A<C
B<C
C<D
B<D
A<B

样例输出 #1

Sorted sequence determined after 4 relations: ABCD.

样例输入 #2

3 2
A<B
B<A

样例输出 #2

Inconsistency found after 2 relations.

样例输入 #3

26 1
A<Z

样例输出 #3

Sorted sequence cannot be determined.

数据范围

2≤n≤26,1≤m≤6002 \leq n \leq 26,1 \leq m \leq 600。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1600。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~3 样例
1 20 4~9 小规模 n≤6,m≤20 / 特殊: 自环A<A首条即矛盾 / 特殊: 确定顺序后后续含矛盾边仍按确定输出
2 25 10~15 Hack: 局部存在歧义但另一连通块已成环(须优先报矛盾而非继续或报未确定) / 重复关系边
3 16~21 满规模 n=26,m=600 哈密顿链唯一拓扑序精确步数定位测试
4 20 22~25 满规模 n=26,m≤600 三种结局均衡综合回归

出处:原题链接