특별한 드롭킥
시간 제한1초메모리 제한1024 MB
복도의 장애물 배치와 최대 M개의 장애물을 추가할 수 있을 때 x=N에 도착하는 최소 시간을 구한다.
문제
NLCS Jeju의 구조는 생각보다 부실해서, 벽이나 문 등을 드롭킥으로 부술 수 있다.
NLCS Jeju의 복도는 1차원 수직선으로 모델링할 수 있으며, 동호의 현재 좌표는 이다. 동호는 에 있는 교실로 가고 싶다. 그러나, NLCS Jeju의 구조는 매우 부실하기에, 인 어떤 정수 에 대해서도 에 장애물이 존재할 수 있다.
복도의 구조는 .과 X로 이루어진 길이 의 문자열로 표현할 수 있다. 번째 문자는 에 대한 장애물의 존재 여부를 의미한다. 문자열의 번째 문자가 X라는 것은, 에 장애물이 존재함을 의미한다.
동호는 에 도착하기 위해 다음과 같은 동작을 번 이상 수행할 수 있다. 다음 두 동작에 대한 설명은 동호가 에 있음을 가정하고 설명한다.
- 에 장애물이 없을 시, 로 이동한다. 이 동작에는 의 시간이 소요된다.
- 부터 연속하여 존재하는 장애물을 모두 제거하고, 제거된 장애물 중 가장 좌표가 큰 장애물의 좌표로 이동한다. 이 동작에는 의 시간이 소요된다.
동호가 에 있는 동안, 동호는 이고 에 장애물이 존재하지 않는 정수 를 골라서 에 장애물을 설치하는 동작을 최대 번 할 수 있다. 이 동작에는 시간이 소요되지 않는다.
복도의 구조가 주어졌을 때, 동호가 에 도착하는 데 걸리는 최소 시간을 구하는 프로그램을 작성하여라.
입력
첫째 줄에 과 이 공백을 사이에 두고 주어진다.
둘째 줄에 복도의 구조를 나타내는 길이 의 문자열 가 주어진다. 의 번째 문자가 .이면 에 아무것도 없음을 뜻하고, X면 장애물이 하나 존재하는 것이다.
출력
첫째 줄에 동호가 에 도착하는 데 걸리는 최소 시간을 출력한다.
제한
- 은
.의 개수보다 적거나 같다.