Поликарпу подарили подарок — браслет с OLED-экраном по всей поверхности. Экран имеет $$$n$$$ пикселей, расположенных вдоль браслета. Каждый пиксель может гореть одним из двух любимых цветов Поликарпа — оранжевым или фиолетовым.
Браслет горит определённой расцветкой в течение дня, но на утро цвета меняются: каждый пиксель загорается произвольным цветом. Поликарпу нравится, когда браслет горит так, что в нём образованы две области, одна из оранжевых пикселей, вторая из фиолетовых. Областью будем называть максимальную по включению последовательность подряд идущих пикселей.
К счастью, экран браслета ещё и сенсорный. Поликарп может нажать на пиксель и область, которой он в данный момент принадлежит, инвертируется по цвету. То есть, оранжевый становиться фиолетовым, и наоборот.
Поликарп показал вам новую утреннюю раскраску экрана и просит вас о помощи. Он хочет изменить её касаниями так, чтобы было ровно две области и чтобы разница между их размерами была как можно меньше. Формально, если оранжевая область имеет размер $$$x$$$, а фиолетовая — $$$y$$$, то Поликарп хочет минимизировать $$$|x-y|$$$.
Единственная строка содержит последовательность длиной от $$$2$$$ до $$$5 \times 10^6$$$, состоящую из цифр «0» и «1», которые обозначают фиолетовый и оранжевый цвета соответственно.
Гарантируется, что оба цвета встречаются в последовательности хотя бы по одному разу.
Выведите целое число — минимальную возможную разность.
1011100110
0
101
1
В первом примере в одном из способов нужно коснуться 2-го, а потом 9-го пикселя, после чего получатся две области по 5 пикселей.
Во втором примере экран уже показывает две области и ничего изменить нельзя.