#P1550E. Stringforces
Stringforces
Stringforces
题面翻译
- 设 是一个由前 个小写字母构成的字符串, 是前 个小写字母中的某一个。定义 表示 所有仅由字母 构成的连续子串的最长长度。
- 定义 的价值为所有 的最小值,其中 取遍前 个小写字母。
- 现在给定一个长度为 的字符串 , 中字母要么是前 个小写字母中的某一个,要么是问号。你需要将 中的每一个问号替换成前 个小写字母中的一个,并最大化 的价值。方便起见,你只需要输出这个最大的价值即可。
- 保证 ,。
题目描述
You are given a string of length . Each character is either one of the first lowercase Latin letters or a question mark.
You are asked to replace every question mark with one of the first lowercase Latin letters in such a way that the following value is maximized.
Let be the maximum length substring of string , which consists entirely of the -th Latin letter. A substring of a string is a contiguous subsequence of that string. If the -th letter doesn't appear in a string, then is equal to .
The value of a string is the minimum value among for all from to .
What is the maximum value the string can have?
输入格式
The first line contains two integers and ( ; ) — the length of the string and the number of first Latin letters used.
The second line contains a string , consisting of characters. Each character is either one of the first lowercase Latin letters or a question mark.
输出格式
Print a single integer — the maximum value of the string after every question mark is replaced with one of the first lowercase Latin letters.
样例 #1
样例输入 #1
10 2
a??ab????b
样例输出 #1
4
样例 #2
样例输入 #2
9 4
?????????
样例输出 #2
2
样例 #3
样例输入 #3
2 3
??
样例输出 #3
0
样例 #4
样例输入 #4
15 3
??b?babbc??b?aa
样例输出 #4
3
样例 #5
样例输入 #5
4 4
cabd
样例输出 #5
1
提示
In the first example the question marks can be replaced in the following way: "aaaababbbb". , , thus the answer is . Replacing it like this is also possible: "aaaabbbbbb". That way , , however, the minimum of them is still .
In the second example one of the possible strings is "aabbccdda".
In the third example at least one letter won't appear in the string, thus, the minimum of values is always .