다오는 폭탄 터트리기 게임을 하려고 한다. 게임에서는 폭탄 개가 좌우로 한줄로 주어진다. 왼쪽에서 번째 폭탄은 자연수 값 를 가진다.
값이 인 폭탄을 클릭하면 그 폭탄과, 폭탄에 연속적으로 인접하면서 값이 이상 이하인 것들이 모두 터진다. 예를 들어, 위 그림에서 이라고 하고, 왼쪽에서 세 번째 폭탄을 터트린 경우 아래와 같은 상황이 된다.
위 그림 처럼 폭탄이 터진 자리는 그대로 남아 있어서, 처음에 인접하지 않았던 폭탄의 쌍은 그 이후에도 인접하지 않다.
폭탄을 클릭하는 횟수가 많을수록 점수가 줄어들어서, 다오는 폭탄을 최소 횟수로 클릭해서 게임을 해결하고 싶다.
주어진 폭탄들과 의 값을 입력으로 받아 최소 클릭 횟수를 계산하는 프로그램을 작성하라.
첫 줄에 폭탄의 개수를 나타내는 정수 과 폭탄의 범위를 나타내는 정수 가 공백으로 구분되어 주어진다. ( )
둘째 줄에 개의 정수 , , 이 공백으로 구분되어 주어진다. ()
최소의 선택 횟수를 출력한다.
5 3 1 3 2 5 4
2
제일 왼쪽의 값이 인 폭탄을 클릭하면 왼쪽 개의 폭탄이 터진다. 그 다음 값이 인 폭탄을 클릭하면 하나만 터진다. 마지막으로 남은 폭탄을 클릭하면 번의 클릭으로 해결이 된다.
하지만, 세 번째의 값이 인 폭탄을 클릭하면 제일 왼쪽의 폭탄을 제외한 모든 폭탄이 터진다. 마지막으로 제일 왼쪽의 폭탄을 클릭하면 게임이 해결된다.
따라서 답은 이다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 11점
종류 2: 36점
종류 3: 53점
추가적인 제한 조건이 없음.