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

[语言月赛 202410] 断章取义

题目描述

本题中,字符串下标从 11 开始。称 S|S| 为字符串 SS 的长度(字符个数)。

字符串 SS 的一个子串是选取一对 1lrS1\le l\le r\le |S|,然后将 Sl,Sl+1,,SrS_l,S_{l+1},\ldots, S_r 拼接得到的字符串,记为 S[lr]S[l\ldots r]。例如,若字符串 SSyummy,那么 S[24]S[2\ldots 4]umm


小 L 说了一个字符串 SS,其中包含大写或小写字母。

小 X 把这个字符串录成了视频,但是为了保证视频内容积极向上,她要对视频进行剪辑,使其不包含否定词 not。具体地,每一轮剪辑找到 SS 中所有子串 not,去掉这些子串,把剩下内容拼在一起;然后检查新子串是否含有 not,如有,则再剪辑一轮,直到没有 not 为止。

例如,IcannototnAKIOI 经过第一轮剪辑会变成 IcanotnAKIOI(剪掉 S[57]S[5\ldots 7]),第二轮剪辑会变成 IcanAKIOI(剪掉 S[46]S[4\ldots 6]),剪辑了两轮。

给出字符串 SS,请先输出剪辑后的结果,然后输出剪辑轮数。

输入格式

输入的第一行有一个自然数 TT,表示这是第几个测试点,特别地,样例对应 T=0T=0

第二行有一行一个字符串 SS,表示小 L 说的话。

输出格式

输出的第一行为一个字符串表示剪辑后的结果。

第二行输出一个整数,表示剪辑轮数。

0
IcannototnAKIOI
IcanAKIOI
2

0
nnototnononotttNOT
NOT
3

0
not


1

提示

【样例 1 解释】

该样例即为题目所描述的情形。

【样例 2 解释】

nnototnononotttNOT 在第一轮剪辑后,变成了 notnonottNOT

第二轮剪辑后,变成了 notNOT

第三轮剪辑后,变成了 NOT

【样例 3 解释】

注意,哪怕剪辑完了啥也不剩,也要输出一个换行。

【数据范围】

本题共有 1010 个测试点。

  • 测试点 11 保证剪辑轮数为 00
  • 测试点 2,32,3 保证剪辑轮数为 11
  • 测试点 4,5,64,5,6 保证剪辑轮数为 88。(提示:如果你会求一般情况下的剪辑结果,但不会计算剪辑轮数,可以拿这些部分分。)

对于全部测试点,保证 SS 非空且仅含大写或小写字母,同时长度不超过 100100