DNA(脱氧核糖核酸)是含有遗传指令的分子。它由四个不同的核苷酸组成,即腺嘌呤,胸腺嘧啶,鸟嘌呤和胞嘧啶。如果我们以其初始字符表示核苷酸,则 DNA 链可以被认为是由四个字符 A,T,G,C 组成的长字符串(字符序列)。例如,假设我们被赋予由以下核苷酸序列组成的 DNA 链:
胸腺嘧啶-腺嘌呤-腺嘌呤-胞嘧啶-胸腺嘧啶-鸟嘌呤-胞嘧啶-胞嘧啶-鸟嘌呤-腺嘌呤-胸腺嘧啶
然后我们可以用 TAACTGCCGAT
字符串代表上述 DNA 链。
生物学家 Ahn 教授发现,基因 X 通常存在于五种不同种类动物(狗,猫,马,牛和猴子)的 DNA 链中。他还发现,每只动物的基因 X 的 DNA 序列非常相似。
Ahn 教授认为人类也可能具有 X 基因(指刻在 DNA 中的 X 基因),并决定在人类 DNA 中搜索 X 的 DNA 序列。然而,在搜索之前,他应该定义一个代表性的基因 X 的 DNA 序列,因为它的序列在五只动物的 DNA 中不完全相同。他决定用 Hamming 距离来定义代表性的序列。
Hamming 距离是两个相等长度的串的每个位置的不同字符的数量。例如,假设我们给出两个字符串 AGCAT
和 GGAAT
。这两个字符串的 Hamming 距离是 2,因为两个字符串的第 1 和第 3 个字符不同。使用 Hamming 距离,我们可以定义一个一组具有相同长度的多个字符串的代表性字符串。给定一组字符串 S= \{s_1,...,s_m \},长度为 n 的字符串 y 与集合 S 之间的一致性误差是 y 与每个 s_i之间的 Hamming 距离之和。如果 y 和 S 之间的一致性误差是所有可能的长度为 n 的字符串的一致性误差的最小值,字符串 y 被称为 S 的一致串。例如,给定三个字符串 AGCAT
、AGACT
和 GGAAT
,给定字符串的一致串是AGAAT
,因为 Hamming 距离之和在 AGAAT
和三个字符串之间是 3,这是最小的。在这种情况下,一致串是唯一的,但一般来说可以有多于一个的一致串。我们使用一致串作为 DNA 序列的代表。
不要什么都往 DNA 里刻啊喂!//半恼
输入
输入由 T \ (1 \leq T \leq 10) 个测试用例组成。
测试用例 T 的数量在输入的第一行给出。
每个测试用例从包含两个整数 m 和 n 的行开始,这两个整数由单个空格分开。整数 m \ (4≤m≤50) 表示 DNA 序列的数量,n \ (4≤n≤1000) 分别表示 DNA 序列的长度。
在接下来的 m 行中,每行给出一个 DNA 序列。
输出
在每种情况的第一行打印一致串,并在每种情况的第二行打印一致性误差。
如果存在一个以上的一致串,打印字典序最小的一致串。
样例
标准输入 复制文本 |
3 5 8 TATGATAC TAAGCTAC AAAGATCC TGAGATAC TAAGATGT 4 10 ACGTACGTAC CCGTACGTAG GCGTACGTAT TCGTACGTAA 6 10 ATGTTACCAT AAGTTACGAT AACAAAGCAA AAGTTACCTT AAGTTACCAA TACTTACCAA |
标准输出 复制文本 |
TAAGATAC 7 ACGTACGTAA 6 AAGTTACCAA 12 |