100833: [AtCoder]ABC083 D - Wide Flip

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $500$ points

Problem Statement

You are given a string $S$ consisting of 0 and 1. Find the maximum integer $K$ not greater than $|S|$ such that we can turn all the characters of $S$ into 0 by repeating the following operation some number of times.

  • Choose a contiguous segment $[l,r]$ in $S$ whose length is at least $K$ (that is, $r-l+1\geq K$ must be satisfied). For each integer $i$ such that $l\leq i\leq r$, do the following: if $S_i$ is 0, replace it with 1; if $S_i$ is 1, replace it with 0.

Constraints

  • $1\leq |S|\leq 10^5$
  • $S_i(1\leq i\leq N)$ is either 0 or 1.

Input

Input is given from Standard Input in the following format:

$S$

Output

Print the maximum integer $K$ such that we can turn all the characters of $S$ into 0 by repeating the operation some number of times.


Sample Input 1

010

Sample Output 1

2

We can turn all the characters of $S$ into 0 by the following operations:

  • Perform the operation on the segment $S[1,3]$ with length $3$. $S$ is now 101.
  • Perform the operation on the segment $S[1,2]$ with length $2$. $S$ is now 011.
  • Perform the operation on the segment $S[2,3]$ with length $2$. $S$ is now 000.

Sample Input 2

100000000

Sample Output 2

8

Sample Input 3

00001111

Sample Output 3

4

Input

题意翻译

给出一个由0和1组成的字符串S。求不大于S的最大整数K,这样我们可以通过多次重复下面的操作将S的所有字符都变成0。 选择S中长度至少为K(即必须满足r-l+1≥K)的连续段[l,r]。对于l≤i≤r的每个整数i,执行以下操作:如果S_i为0,则用1替换;如果S_i为1,则用0替换。

加入题单

算法标签: