바둑돌 나열

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

흰색과 검은색 바둑돌을 테이블 위에 한 줄로 나열하는 놀이를 한다. 먼저 테이블의 가장 왼쪽에 바둑돌 하나를 놓고, 그다음 왼쪽에서 $2$번째 자리에 바둑돌을 놓는다. 이를 $n$번 반복하여 $n$개의 바둑돌을 가로로 한 줄로 나열한다. 단, 새로 $i$번째 바둑돌을 놓을 때는 다음 규칙에 따라 테이블 위의 바둑돌을 바꾼다.

  • $i$가 홀수인 경우: 테이블에 이미 놓여 있는 바둑돌은 그대로 두고, 새 바둑돌을 왼쪽에서 $i$번째 자리에 놓는다.
  • $i$가 짝수인 경우: 새로 왼쪽에서 $i$번째에 놓을 바둑돌의 색과 테이블 위 오른쪽 끝 바둑돌의 색이 같으면, 테이블 위의 바둑돌은 바꾸지 않고 새 바둑돌을 왼쪽에서 $i$번째 자리에 놓는다. 그렇지 않은 경우, 즉 새로 놓을 바둑돌의 색과 오른쪽 끝 바둑돌의 색이 다르면, 먼저 테이블 오른쪽 끝에 연속으로 놓여 있는 같은 색 바둑돌을 모두 걷어내고 그 자리를 $i$번째 바둑돌과 같은 색으로 바꿔 놓는다. 그런 다음 테이블 오른쪽 끝에 $i$번째 바둑돌을 놓는다.

예를 들어, 처음 $7$개의 바둑돌을 놓은 시점에서

○○●●○○○

와 같이 되어 있다고 하자. (○는 흰 바둑돌, ●는 검은 바둑돌을 나타낸다.)

  • $8$번째 바둑돌이 흰색(○)인 경우, 오른쪽 끝 바둑돌과 색이 같으므로 그대로 놓는다. 따라서 테이블 위의 바둑돌은
○○●●○○○○

가 된다.

  • $8$번째 바둑돌이 검은색(●)인 경우, 오른쪽 끝 바둑돌(○)과 색이 다르므로 먼저 오른쪽 끝에 연속으로 놓인 흰 바둑돌(○) $3$개를 걷어내고 검은 바둑돌(●)로 바꿔 놓는다. 그런 다음 오른쪽 끝에 $8$번째 바둑돌을 놓는다. 따라서 테이블 위의 바둑돌은
○○●●●●●●

가 된다.

입력으로 바둑돌을 놓는 순서가 주어질 때, $n$개의 바둑돌을 모두 나열한 뒤 테이블 위에 남아 있는 흰 바둑돌의 개수를 구하는 프로그램을 작성하여라.

입력

첫째 줄에 양의 정수 $n$ ($1 \le n \le 100000$)이 주어진다. 둘째 줄부터 $i+1$번째 줄 ($1 \le i \le n$)에는 $i$번째로 놓는 바둑돌의 색을 나타내는 정수 $c_i$가 주어진다. $c_i$가 $0$이면 $i$번째 바둑돌의 색이 흰색임을, $1$이면 검은색임을 나타낸다.

출력

$n$개의 바둑돌을 모두 나열한 뒤 테이블 위에 놓여 있는 흰 바둑돌의 개수를 한 줄에 출력한다.