CF873F.Forbidden Indices

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string s consisting of n lowercase Latin letters. Some indices in this string are marked as forbidden.

You want to find a string a such that the value of |a|·f(a) is maximum possible, where f(a) is the number of occurences of a in s such that these occurences end in non-forbidden indices. So, for example, if s is aaaa, a is aa and index 3 is forbidden, then f(a) = 2 because there are three occurences of a in s (starting in indices 1, 2 and 3), but one of them (starting in index 2) ends in a forbidden index.

Calculate the maximum possible value of |a|·f(a) you can get.

给你一个由 nn 个小写拉丁字母组成的字符串 ss。该字符串中某些下标被标记为禁止位置。

你需要找到一个字符串 aa,使得 ∣a∣⋅f(a)|a| \cdot f(a) 的值尽可能大,其中 f(a)f(a) 表示 aa 在 ss 中的所有出现次数中,以非禁止下标结尾的那些出现的个数。例如,若 s=aaaas = \text{aaaa},a=aaa = \text{aa},且下标 33(从 00 开始计数?注意:原文示例中“starting in index 2 ends in a forbidden index”暗示使用从 1 开始的下标)被禁止,则 f(a)=2f(a) = 2,因为 aa 在 ss 中共有三次出现(起始下标分别为 11、22 和 33),但其中一次(起始于下标 22)结束于禁止下标(即结束下标为 33)。

请计算你能得到的最大可能值 ∣a∣⋅f(a)|a| \cdot f(a)。

输入格式

The first line contains an integer number n (1 ≤ n ≤ 200000) — the length of s.

The second line contains a string s, consisting of n lowercase Latin letters.

The third line contains a string t, consisting of n characters 0 and 1. If i-th character in t is 1, then i is a forbidden index (otherwise i is not forbidden).

第一行包含一个整数 $ n (( 1 \leq n \leq 200000 $)——字符串 $ s $ 的长度。

第二行包含一个字符串 $ s $,由 $ n $ 个小写拉丁字母组成。

第三行包含一个字符串 $ t $,由 $ n $ 个字符 0 和 1 组成。若 $ t $ 中第 $ i $ 个字符为 1,则下标 $ i $ 是一个被禁止的索引(否则 $ i $ 不被禁止)。

输出格式

Print the maximum possible value of |a|·f(a).

输出 ⌊a⌋⋅f(a)\lfloor a \rfloor \cdot f(a) 的最大可能值。

输入输出样例

  • 输入#1

    5
    ababa
    00100

    输出#1

    5
  • 输入#2

    5
    ababa
    00000

    输出#2

    6
  • 输入#3

    5
    ababa
    11111

    输出#3

    0

输入解题思路,AI测评打分。不知道怎么写?

首页