두더지 잡기
시간 제한1초메모리 제한256 MB
원형으로 놓인 구멍에서 최대 k번 발사해 목표 구멍의 두더지를 내보내고 이웃 구멍의 두더지는 바깥으로 밀어낼 때, 내보낼 수 있는 두더지 수의 최댓값을 구한다.
문제
잔디밭에 두더지굴 개가 원형으로 놓여 있고, 각 굴에는 번부터 번까지 차례로 번호가 매겨져 있다. 원형이므로 번과 번, 번과 번, , 번과 번 굴이 서로 인접하다.
지금 번 굴에는 두더지가 마리 있다. 모형 권총으로 번 굴을 쏘면 다음 일이 동시에 일어난다.
- 번 굴에 있던 두더지는 모두 겁을 먹고 굴 밖으로 탈출한다. (이렇게 굴을 탈출한 두더지가 '쫓아낸' 두더지로 집계된다.)
- 번 굴과 인접한 두 굴에 있던 두더지도 겁을 먹어, 번 굴이 아닌 반대쪽 이웃 굴로 달아난다. 즉 번 굴의 두더지는 번 굴로, 번 굴의 두더지는 번 굴로 이동한다.
예를 들어 번 굴을 쏘면, 번 굴의 두더지는 모두 탈출하고 번 굴의 두더지는 번 굴로, 번 굴의 두더지는 번 굴로 이동한다.
권총을 최대 번 쏠 수 있을 때, 굴 밖으로 탈출시킬 수 있는 두더지 수의 최댓값을 구하여라.
입력
첫째 줄에 두더지굴의 수 과 권총을 쏠 수 있는 최대 횟수 가 주어진다. (, )
둘째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 는 번 굴에 있는 두더지의 수이다. ()
출력
권총을 최대 번 사용했을 때 굴 밖으로 탈출시킬 수 있는 두더지 수의 최댓값을 한 줄에 출력한다.
힌트
굴의 상태가 라고 하자. (왼쪽부터 차례로 번 굴이다.)
먼저 번 굴을 쏘면 그 굴의 두더지 마리가 탈출한다. 이때 번 굴의 이웃인 번 굴(번 굴)의 두더지는 번 굴로, 번 굴의 두더지는 번 굴로 이동하여 상태는 이 된다.
다음으로 번 굴을 쏘면 그 굴에 모인 두더지 마리가 탈출한다. 두 번의 사격으로 모두 마리를 쫓아낼 수 있다.