B4048 [语言月赛 202410] 断章取义

题目描述

本题中,字符串下标从 $1$ 开始。称 $|S|$ 为字符串 $S$ 的长度(字符个数)。 字符串 $S$ 的一个**子串**是选取一对 $1\le l\le r\le |S|$,然后将 $S_l,S_{l+1},\ldots, S_r$ 拼接得到的字符串,记为 $S[l\ldots r]$。例如,若字符串 $S$ 是 `yummy`,那么 $S[2\ldots 4]$ 是 `umm`。 ------ 小 L 说了一个字符串 $S$,其中包含大写或小写字母。 小 X 把这个字符串录成了视频,但是为了保证视频内容积极向上,她要对视频进行剪辑,使其不包含否定词 `not`。具体地,每一轮剪辑找到 $S$ 中所有子串 `not`,去掉这些子串,把剩下内容拼在一起;然后检查新子串是否含有 `not`,如有,则再剪辑一轮,直到没有 `not` 为止。 例如,`IcannototnAKIOI` 经过第一轮剪辑会变成 `IcanotnAKIOI`(剪掉 $S[5\ldots 7]$),第二轮剪辑会变成 `IcanAKIOI`(剪掉 $S[4\ldots 6]$),剪辑了两轮。 给出字符串 $S$,请先输出剪辑后的结果,然后输出剪辑轮数。

输入格式

输入的第一行有一个自然数 $T$,表示这是第几个测试点,特别地,样例对应 $T=0$。 第二行有一行一个字符串 $S$,表示小 L 说的话。

输出格式

输出的第一行为一个字符串表示剪辑后的结果。 第二行输出一个整数,表示剪辑轮数。

说明/提示

【样例 1 解释】 该样例即为题目所描述的情形。 【样例 2 解释】 `nnototnononotttNOT` 在第一轮剪辑后,变成了 `notnonottNOT`。 第二轮剪辑后,变成了 `notNOT`。 第三轮剪辑后,变成了 `NOT`。 【样例 3 解释】 注意,哪怕剪辑完了啥也不剩,也要输出一个换行。 【数据范围】 本题共有 $10$ 个测试点。 - 测试点 $1$ 保证剪辑轮数为 $0$。 - 测试点 $2,3$ 保证剪辑轮数为 $1$。 - 测试点 $4,5,6$ 保证剪辑轮数为 $8$。(提示:如果你会求一般情况下的剪辑结果,但不会计算剪辑轮数,可以拿这些部分分。) 对于全部测试点,保证 $S$ 非空且仅含大写或小写字母,同时长度不超过 $100$。