#codefestival2017qualbd. [code_festival_2017_qualb_d]101 to 010

[code_festival_2017_qualb_d]101 to 010

問題文

NN 個のセルが一列に並んでいます。 何個かのセルはトークンを含んでいるかもしれません。 あなたは、 01 からなる文字列 ss が与えられます。 ssii 文字目が 1 のとき、(左から) ii 番目のセルはトークンを一個含んでいます。 そうでないとき、トークンを含んでいません。

すぬけ君は、以下の操作をできる限り行いたいです。 各操作では、三個の連続するセルを選びます。 セルを左から X,Y,ZX, Y, Z とします。 操作を行うためには、 XXZZ の両方がトークンを含み、 YY はトークンを含んでいてはなりません。 次に、すぬけ君はこれらの二個のトークンを取り除き、新しいトークンを YY に一個置きます。

最適な操作の方法をしたとき、すぬけ君は何回操作を行えますか?

制約

  • 1leqNleq500,0001 \\leq N \\leq 500,000
  • s=N|s| = N
  • ss の各文字は 0 または 1 である。

入力

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

NN ss

出力

答えを出力せよ。


入力例 1

7
1010101

出力例 1

2

例えば、以下の方法で操作を二回行うことができます:

  • 最後の三個のセルに対し操作を行う。 トークンを表す文字列は 1010010 となる。
  • 最初の三個のセルに対し操作を行う。 トークンを表す文字列は 0100010 となる。

操作の順番が重要であることに注意してください。 たとえば、最初に中央の三個のセルを選ぶと、それ以上操作を行えなくなります。


入力例 2

50
10101000010011011110001001111110000101010111100110

出力例 2

10