BZOJ3521[Poi2014] Salad Bar
Description
有一个长度为n的字符串,每一位只会是p或j。你需要取出一个子串S(从左到右或从右到左一个一个取出),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个数。你需要最大化|S|。
Input
第一行一个数n,第二行一个长度n的字符串。
Output
S的最大长度。
Sample Input
6
jpjppj
Sample Output
4
HINT
【样例解释】
取pjpp这个串。
【数据范围】
n≤1000000
Solution:
这道题的难点在于如何抽象这个题目所给的条件。
对于答案区间 [L,R] ,有:
∀k∈[L,R],sum[k]−sum[L−1]≥0,sum[R]−sum[k−1]≥0
即:
∀