아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

특별한 드롭킥

시간 제한1초메모리 제한1024 MB

요약
복도의 장애물 배치와 최대 M개의 장애물을 추가할 수 있을 때 x=N에 도착하는 최소 시간을 구한다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 누적 합
정답자
아직 제출이 없습니다

문제

NLCS Jeju의 구조는 생각보다 부실해서, 벽이나 문 등을 드롭킥으로 부술 수 있다.

NLCS Jeju의 복도는 1차원 수직선으로 모델링할 수 있으며, 동호의 현재 좌표는 x=0x=0이다. 동호는 x=Nx=N에 있는 교실로 가고 싶다. 그러나, NLCS Jeju의 구조는 매우 부실하기에, 1≤i≤N1 \le i \le N인 어떤 정수 ii에 대해서도 x=ix=i에 장애물이 존재할 수 있다.

복도의 구조는 .과 X로 이루어진 길이 NN의 문자열로 표현할 수 있다. ii번째 문자는 x=ix=i에 대한 장애물의 존재 여부를 의미한다. 문자열의 ii번째 문자가 X라는 것은, x=ix=i에 장애물이 존재함을 의미한다.

동호는 x=Nx=N에 도착하기 위해 다음과 같은 동작을 11번 이상 수행할 수 있다. 다음 두 동작에 대한 설명은 동호가 x=ix=i에 있음을 가정하고 설명한다.

  • x=i+1x=i+1에 장애물이 없을 시, x=i+1x=i+1로 이동한다. 이 동작에는 11의 시간이 소요된다.
  • x=i+1x=i+1부터 연속하여 존재하는 장애물을 모두 제거하고, 제거된 장애물 중 가장 xx좌표가 큰 장애물의 좌표로 이동한다. 이 동작에는 22의 시간이 소요된다.

동호가 x=0x=0에 있는 동안, 동호는 1≤i≤N1 \le i \le N이고 x=ix=i에 장애물이 존재하지 않는 정수 ii를 골라서 x=ix=i에 장애물을 설치하는 동작을 최대 MM번 할 수 있다. 이 동작에는 시간이 소요되지 않는다.

복도의 구조가 주어졌을 때, 동호가 x=Nx=N에 도착하는 데 걸리는 최소 시간을 구하는 프로그램을 작성하여라.

입력

첫째 줄에 NN과 MM이 공백을 사이에 두고 주어진다.

둘째 줄에 복도의 구조를 나타내는 길이 NN의 문자열 SS가 주어진다. SS의 ii번째 문자가 .이면 x=ix=i에 아무것도 없음을 뜻하고, X면 장애물이 하나 존재하는 것이다.

출력

첫째 줄에 동호가 x=Nx=N에 도착하는 데 걸리는 최소 시간을 출력한다.

제한

  • 1≤N≤200,0001 \le N \le 200\\,000
  • 0≤M≤N0 \le M \le N
  • MM은 .의 개수보다 적거나 같다.

예제1

  1. 예제 1

    입력
    4 1
    .XX.
    
    예상 출력
    3