CF1151A.Maxim and Biology

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Maxim and Biology

题目描述

今天在 Kremland 王国的科学中学里上了一节生物课。课程的主题是基因组。我们称字符串 "ACTG" 为基因组。

Maxim 在课堂上感到非常无聊,于是老师给他出了一个任务:给定一个由大写字母组成且长度不少于 44 的字符串 ss,你需要找出最少需要多少次操作,才能使得基因组作为子串出现在该字符串中。每次操作,你可以将字符串 ss 中的任意一个字母替换为字母表中的下一个或上一个字母。例如,对于字母 "D",上一个字母是 "C",下一个字母是 "E"。在本题中,我们规定字母 "A" 的上一个字母是 "Z",下一个字母是 "B";字母 "Z" 的上一个字母是 "Y",下一个字母是 "A"。

请帮助 Maxim 解决老师给他的问题。

如果字符串 aa 可以通过删除字符串 bb 的若干(可能为零或全部)开头字符和若干(可能为零或全部)结尾字符得到,则称 aabb 的一个子串。

输入格式

第一行包含一个整数 nn4n504 \leq n \leq 50),表示字符串 ss 的长度。

第二行包含一个长度恰好为 nn 的仅由大写拉丁字母组成的字符串 ss

输出格式

输出将字符串 ss 变换为包含基因组子串所需的最小操作次数。

说明/提示

在第一个样例中,你应该将字母 "Z" 替换为 "A"(一次操作),将字母 "H" 替换为 "G"(一次操作)。这样你就得到了字符串 "ACTG",其中包含基因组作为子串。

在第二个样例中,我们将字母 "A" 替换为 "C"(两次操作),将字母 "D" 替换为 "A"(三次操作)。这样你就得到了字符串 "ZACTG",其中包含基因组。

由 ChatGPT 4.1 翻译

样例

4
ZCTH
2
5
ZDATG
5
6
AFBAKC
16

在线编程 IDE

建议全屏模式获得最佳体验