CF873F Forbidden Indices

题目描述

给定一个由 $n$ 个小写拉丁字母组成的字符串 $s$。在这个字符串中,有一些位置被标记为禁用。 你需要找到一个字符串 $a$,使得 $|a|·f(a)$ 的值最大,其中 $f(a)$ 表示 $a$ 在 $s$ 中出现的次数,且这些出现必须以非禁用位置结尾。例如,如果 $s$ 是 aaaa,$a$ 是 aa,第 $3$ 个位置被禁用,那么 $f(a)=2$,因为 $a$ 在 $s$ 中出现了三次(分别从位置 $1$,$2$ 和 $3$ 开始),但是其中有一次(从位置 $2$ 开始)以禁用位置结尾。 请计算能够得到的最大可能值 $|a|·f(a)$。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 200000$),表示字符串 $s$ 的长度。 第二行包含一个长度为 $n$ 的字符串 $s$,由小写拉丁字母组成。 第三行包含一个长度为 $n$ 的字符串 $t$,由 $0$ 和 $1$ 组成。如果 $t$ 的第 $i$ 个字符是 $1$,则第 $i$ 个位置是禁用位置,否则不是禁用位置。

输出格式

输出一个整数,表示最大可能的 $|a|·f(a)$。

说明/提示

由 ChatGPT 5 翻译