만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

특별한 드롭킥 2

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

요약
복도 상태를 나타내는 문자열이 주어집니다. 장애물을 최대 M번 밀어 옮긴 뒤, 0번 구역에서 N번 구역까지 가는 최소 시간을 구합니다.
난이도

어려움10점 중 8점

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

문제

NLCS Jeju의 건물은 부실해서 벽이나 문 등을 드롭킥으로 부술 수 있다.

NLCS Jeju의 복도는 00번째부터 NN번째까지 정사각형 구역으로 나눌 수 있으며, 동호가 있는 00번째 구역을 제외한 각 구역에는 장애물이 존재할 수 있다. 동호는 00번째 구역에서 교실이 있는 NN번째 구역까지 가능한 한 빠르게 이동하고 싶다.

동호는 복도의 구조를 나타내는 길이 NN의 문자열 SS를 알고 있다. 정수 1≤i≤N1\le i\le N에 대해 SiS_i가 X이면 ii번째 구역에 장애물이 존재하고, SiS_i가 .이면 ii번째 구역에 장애물이 존재하지 않는다.

동호는 다음과 같은 방법으로 장애물을 최대 MM번 움직일 수 있다.

  • 장애물을 번호가 커지는 방향으로 한 칸 민다. 이때 번호가 커지는 방향으로 연속한 장애물이 모두 함께 움직인다.
  • 장애물을 번호가 작아지는 방향으로 한 칸 민다. 이때 번호가 작아지는 방향으로 연속한 장애물이 모두 함께 움직인다.

밀린 뒤에도 장애물은 11번째부터 NN번째 구역 안에 있어야 한다.

장애물을 최대 MM번 움직인 뒤, 동호는 두 가지 기술을 조합해 교실까지 이동한다.

  • 1초 동안 번호가 커지는 방향으로 한 칸 이동한다. 이동하려는 칸에 장애물이 있으면 이동할 수 없다.
  • 2초 동안 동호와 이웃한 장애물을 파괴한다. 파괴한 장애물과 이웃한 장애물도 함께 파괴할 수 있다. 장애물을 파괴한 뒤에는 파괴한 장애물이 있던 위치로 이동한다. 여러 개를 파괴한 경우 그중 원하는 위치로 이동할 수 있다.

동호는 교실에 도착하는 시간을 최소화하고 싶어 한다. 교실에 도착하는 데 몇 초가 걸리는지 구하라.

입력

첫 번째 줄에 NN과 MM이 공백으로 구분되어 주어진다.

두 번째 줄에 복도의 구조를 나타내는 길이 NN의 문자열 SS가 주어진다. SiS_i가 X이면 ii번째 구역에 장애물이 존재하고, SiS_i가 .이면 ii번째 구역에 장애물이 존재하지 않는다.

출력

동호가 교실에 도착하는 데 걸리는 시간을 정수로 출력한다.

제한

  • 1≤N≤200 0001 \le N \le 200\,000
  • 0≤M≤N0 \le M \le N

예제1

  1. 예제 1

    입력
    10 4
    .X..X..X..
    
    예상 출력
    9