특별한 드롭킥 2

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

요약
0번 구역에서 N번 구역까지 이동하는 최소 시간을 구한다. 장애물 무리를 최대 M번 한 칸씩 밀 수 있고, 파괴는 2초가 걸린다.
난이도

어려움10점 중 8점

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

문제

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

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

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

동호는 장애물을 지나 빠르게 교실에 도착하기 위해 장애물을 다음과 같이 최대 MM번 움직일 수 있다.

  • 장애물을 구역의 번호가 커지는 방향으로 밀어 한 칸 움직인다. 이때 구역의 번호가 커지는 방향으로 연속한 모든 장애물이 함께 움직인다.
  • 장애물을 구역의 번호가 작아지는 방향으로 밀어 한 칸 움직인다. 이때 구역의 번호가 작아지는 방향으로 연속한 모든 장애물이 함께 움직인다.

이때 장애물은 밀린 후에도 11번째부터 NN번째까지의 구역 안에 있어야 한다.

장애물을 최대 MM번 움직인 후, 동호는 두 가지 기술을 적절히 섞어 교실로 이동한다.

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

동호는 교실에 도달하는 시간을 최소화하려고 한다. 교실에 도달하는 데 얼마나 시간이 걸릴지 구하라.

입력

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

두 번째 줄에 복도의 구조를 나타내는 길이 NN의 문자열 SS가 주어진다. S_iS\_i가 X라면 ii번째 구역에 장애물이 존재하고, S_iS\_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