AT_abc418_d [ABC418D] XNOR Operation

Description

> この問題は G 問題の部分問題です。 `0` と `1` からなる空でない文字列 $ S $ が次の条件を満たす時、 $ S $ を美しい文字列と呼びます。 - (条件) 次の一連の操作を $ S $ の長さが $ 1 $ になるまで行い、 $ S $ に残った唯一の文字を `1` にすることができる。 1. $ 1 \leq i \leq |S| - 1 $ を満たす整数 $ i $ を自由に選ぶ。 2. 整数 $ x $ を次のように定義する。 - $ S_i = $ `0` かつ $ S_{i+1}= $ `0` である場合、 $ x = 1 $ とする。 - $ S_i = $ `0` かつ $ S_{i+1}= $ `1` である場合、 $ x = 0 $ とする。 - $ S_i = $ `1` かつ $ S_{i+1}= $ `0` である場合、 $ x = 0 $ とする。 - $ S_i = $ `1` かつ $ S_{i+1}= $ `1` である場合、 $ x = 1 $ とする。 3. $ S_i $ と $ S_{i+1} $ を取り除き、それらがあった場所に $ x $ を数字とみなしたものを $ 1 $ 個挿入する。 例えば $ S= $ `10101` に対して $ i=2 $ を選んで操作を行った場合、操作後の文字列は `1001` になる。 `0` と `1` からなる長さ $ N $ の文字列 $ T $ があります。 $ T $ の部分文字列である美しい文字列の個数を求めてください。ただし、 $ 2 $ つの部分文字列が文字列として同じでも、取り出す位置が異なるならば別々に数えます。 部分文字列とは $ S $ の**部分文字列**とは、 $ S $ の先頭から $ 0 $ 文字以上、末尾から $ 0 $ 文字以上削除して得られる文字列のことをいいます。 例えば、`10` は `101` の部分文字列ですが、`11` は `101` の部分文字列ではありません。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ T $

Output Format

$ T $ の部分文字列である美しい文字列の個数を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ T $ の $ 1 $ 文字目から $ 2 $ 文字目までを取り出してできる文字列 `11` は美しい文字列です。なぜならば、 $ i=1 $ として操作を行うと、操作後の文字列は `1` になるからです。 $ T $ の部分文字列である美しい文字列は次の $ 3 $ 個です。 - $ T $ の $ 1 $ 文字目を取り出してできる文字列 `1` - $ T $ の $ 2 $ 文字目を取り出してできる文字列 `1` - $ T $ の $ 1 $ 文字目から $ 2 $ 文字目までを取り出してできる文字列 `11` ### Constraints - $ 1 \leq N \leq 2 \times 10^5 $ - $ N $ は整数 - $ T $ は `0` と `1` からなる長さ $ N $ の文字列