유리구슬 (Glass Bead)
시간 제한1초메모리 제한1024 MB
맨 아래 y=0 줄의 구슬 배치가 주어질 때, 각 구슬이 아래 두 칸을 필요로 한다는 조건 아래 위로 쌓아 총 구슬 개수의 최댓값을 구한다.
문제
투명한 유리구슬처럼 보이지만
그렇게 쉽게 깨지진 않을 거야
사랑해 너만을 변하지 않도록
영원히 널 비춰줄게
유리구슬로 깨지지 않을 구조물을 만들고자 한다.
구조물은 다음과 같은 피라미드 격자의 에 유리구슬을 놓아 만들어진다. (는 이상의 정수)

인 좌표의 구조물이 깨지지 않도록 하기 위해서, 구조물은 다음 조건을 충족해야 한다.
- 에 유리구슬이 있으려면 , 에 모두 유리구슬이 있어야 한다.
구조물의 부분의 정보가 주어졌을 때, 인 곳에 유리구슬을 적절히 놓아 만들 수 있는 구조물의 유리구슬 개수의 최댓값을 구하여라.
입력
첫째 줄에 정보가 주어질 범위 이 주어진다.
둘째 줄에 구조물의 인 곳의 정보가 길이 의 문자열 형식으로 주어진다.
문자열의 번째 문자가 1이라면 에 유리구슬이 있고, 아니라면 유리구슬이 없다. ()
범위를 벗어나는 에는 유리구슬이 없다.
출력
첫째 줄에 구조물의 유리구슬 개수의 최댓값을 출력한다.
제한
힌트
답이 C++의 int 범위를 넘어갈 수 있으므로 long long 자료형을 사용하는 것을 추천한다.