#G424122. [GESP202412 四级 C++] 27. 字符排序

    ID: 204 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 普及/提高- 上传者: 标签>贪心算法字符串及其函数排序算法编程题c++

[GESP202412 四级 C++] 27. 字符排序

题目描述

小杨有 nn 个仅包含小写字母的字符串 s1,s2,,sns_1,s_2,\ldots,s_n,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串 tt。小杨希望最后构成的字符串 tt 满足:

  • 假设 tit_i 为字符串 tt 的第 ii 个字符,对于所有的 j<ij<i 均有 tjtit_j\le t_i。两个字符的大小关系与其在字母表中的顺序一致,例如 e<g<p<s\texttt{e}<\texttt{g}<\texttt{p} < \texttt{s}

小杨想知道是否存在满足条件的字符串排列顺序。

输入格式

第一行包含一个正整数 TT,代表测试数据组数。

对于每组测试数据,第一行包含一个正整数 nn,含义如题面所示。

之后 nn 行,每行包含一个字符串 sis_i

输出格式

对于每组测试数据,如果存在满足条件的排列顺序,输出(一行一个)1\texttt{1},否则输出(一行一个) 0\texttt{0}

数据范围

1T,n1001 \le T, n \le 100,每个字符串长度不超过 1010

测试样例

3
3
aa
ac
de
2
aac
bc
1
gesp
1
0
0

说明/提示

对于第一组测试数据,一种可行的排列顺序为 aa+ac+de\texttt{aa}+\texttt{ac}+\texttt{de},构成的字符串 ttaaacde\texttt{aaacde},满足条件。