슬라임 합성
시간 제한8초메모리 제한1024 MB
한 줄로 늘어선 슬라임의 레벨이 0부터 9까지 주어질 때, 인접한 같은 레벨 두 개를 한 단계 높은 슬라임으로 합치는 최대 횟수를 구합니다.
문제
JAG 왕국에서는 슬라임이 비정상적으로 많이 발생해 심각한 문제가 되었다. 마법사인 당신은 슬라임 수를 줄이기 위해 '슬라임 합성 마법'을 개발했다.
JAG 왕국의 슬라임에는 음이 아닌 정수로 표현되는 '레벨'이 붙어 있으며, 이 마법에서 레벨은 중요한 의미를 가진다. 슬라임 합성 마법을 발동하면 레벨이 같은 슬라임 두 마리를 합쳐 레벨 인 슬라임 한 마리로 만들 수 있다.
당신은 슬라임이 비정상적으로 발생한 현장으로 달려갔다. 그곳에는 마리의 슬라임이 한 줄로 놓여 있다. 처음에 왼쪽에서 번째 슬라임의 레벨은 이다. 슬라임 합성 마법은 줄에서 바로 옆에 있고 레벨이 같은 두 마리에게만 발동할 수 있다. 그런 쌍이 없으면 마법을 발동할 수 없다. 합성된 슬라임은 원래 두 슬라임의 위치 사이에 생긴다. 슬라임은 스스로 움직이지 않으며, 움직이게 할 수도 없다.
예를 들어 레벨 열이 (1, 1, 1, 1)이라면, 왼쪽에서 2번째와 3번째 슬라임에 마법을 발동했을 때 레벨 열은 (1, 2, 1)이 되고, 더 이상 마법을 발동할 수 없다.
발동 직전에 조건을 만족하는 쌍이라면 어떤 쌍에든 마법을 발동할 수 있다. 가장 좋은 순서로 마법을 발동했을 때 최대 몇 마리의 슬라임을 줄일 수 있는지, 즉 마법을 최대 몇 번 발동할 수 있는지 구하라.
입력으로 주어지는 레벨은 0부터 9까지이지만, 합성 마법으로 레벨 10 이상의 슬라임을 만들 수 있다.
입력
입력은 여러 개의 데이터셋으로 이루어지며, 데이터셋의 개수는 40을 넘지 않는다. 각 데이터셋은 다음 형식으로 주어진다.
첫 번째 줄에는 정수 이 주어지며, 를 만족한다. 두 번째 줄에는 길이가 인 숫자열 이 주어진다. 이 숫자열의 번째 숫자 는 왼쪽에서 번째 슬라임의 레벨이며, 0 이상 9 이하임이 보장된다. 입력의 끝은 0 한 개로 이루어진 줄로 표시된다.
출력
각 데이터셋에 대해, 가장 좋은 순서로 슬라임 합성 마법을 발동했을 때 최대 몇 번 발동할 수 있는지 출력하라.