E. Игра с двоичной строкой
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим следующую игру. У двух игроков есть двоичная строка (строка, состоящая из символов 0 и/или 1). Игроки ходят по очереди, первый игрок делает первый ход. Во время хода игрок должен выбрать ровно два соседних элемента строки и удалить их (первый элемент и последний элемент также считаются соседними). Более того, существуют дополнительные ограничения в зависимости от того, кто делает ход:

  • если ход делает первый игрок, оба выбранных символа должны быть 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.

Выходные данные

Выведите одно целое число — количество таких подстрок, что если игра будет сыграна на этой подстроке, первый игрок выиграет.

Пример
Входные данные
10
0010010011
Выходные данные
12
Примечание

В первом примере следующие подстроки являются выигрышными для первого игрока ($$$s[l:r]$$$ обозначает $$$s_l s_{l+1} \dots s_r$$$):

  • $$$s[1:2]$$$;
  • $$$s[1:3]$$$;
  • $$$s[1:7]$$$;
  • $$$s[2:4]$$$;
  • $$$s[2:8]$$$;
  • $$$s[3:5]$$$;
  • $$$s[4:5]$$$;
  • $$$s[4:6]$$$;
  • $$$s[5:7]$$$;
  • $$$s[6:8]$$$;
  • $$$s[7:8]$$$;
  • $$$s[7:9]$$$.