Рассмотрим следующую игру. У двух игроков есть двоичная строка (строка, состоящая из символов 0 и/или 1). Игроки ходят по очереди, первый игрок делает первый ход. Во время хода игрок должен выбрать ровно два соседних элемента строки и удалить их (первый элемент и последний элемент также считаются соседними). Более того, существуют дополнительные ограничения в зависимости от того, кто делает ход:
Игрок, который не может сделать ход, проигрывает игру. Это также означает, что если в строке в данный момент меньше $$$2$$$ символов, текущий игрок проигрывает игру.
Вам дана двоичная строка $$$s$$$ длины $$$n$$$. Вам нужно вычислить количество ее таких подстрок, что если игра будет сыграна на этой подстроке и оба игрока будут играть оптимально, первый игрок выиграет. Другими словами, вычислите количество пар $$$(l, r)$$$ таких, что $$$1 \le l \le r \le n$$$ и у первого игрока есть выигрышная стратегия на строке $$$s_l s_{l+1} \dots s_r$$$.
Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 3 \cdot 10^5$$$).
Вторая строка содержит строку $$$s$$$, состоящую ровно из $$$n$$$ символов. Каждый символ строки является либо 0, либо 1.
Выведите одно целое число — количество таких подстрок, что если игра будет сыграна на этой подстроке, первый игрок выиграет.
100010010011
12
В первом примере следующие подстроки являются выигрышными для первого игрока ($$$s[l:r]$$$ обозначает $$$s_l s_{l+1} \dots s_r$$$):
| Название |
|---|


