만드는 중입니다

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

스트리밍 서비스

면접 대비

시간 제한2초메모리 제한512 MB

요약
두 서비스의 날짜별 공개 일정이 주어질 때, 매일 새 에피소드가 나오는 서비스를 구독하도록 K일짜리 구독을 최소 몇 번 사야 하는지 구합니다.
난이도

보통10점 중 6점

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

문제

작년에 드디어 코드 커터가 되기로 마음먹고, 짜증 나는 광고를 피하려고 TV 구독을 해지했다. 정말 속이 시원했다. 이제는 채널이 정한 시간이 아니라 내가 원하는 때에 TV를 볼 수 있었다. 하지만 이 행복은 오래가지 않았다. 스트리밍 서비스들이 금방 옛 TV 채널의 "일주일에 한 편" 방식을 따라 하기 시작했고, 직장에서 점심을 먹으며 나누는 대화도 전날 스트리밍 서비스에 공개된 에피소드 이야기로 바뀌었다.

스트리밍 서비스는 이렇게 작동한다. 특정한 날에 서비스가 TV 프로그램의 새 에피소드를 정확히 한 편 공개한다. 매일 그날 공개된 에피소드를 하나 봐야 다음 날 점심 대화에 끼어들 수 있다.

좋아하는 스트리밍 서비스가 가끔 에피소드를 공개하지 않는 날이 있으므로, 이번에는 두 개의 스트리밍 서비스를 이용하려고 한다. 어느 날이든 현재 구독하지 않는 서비스의 구독권을 살 수 있다. 구독권은 KK일 동안 유효하며, 그 기간 동안 구입한 서비스에서 에피소드를 볼 수 있다. 이미 어떤 서비스를 구독 중이더라도 다른 서비스의 구독권을 살 수 있다.

각 서비스가 앞으로 NN일 동안 새 에피소드를 공개하는 날짜가 주어졌을 때, 매일 새 에피소드를 공개하는 서비스의 구독이 유효하도록 하려면 구독권을 총 몇 번 사야 하는지 구하라.

입력

첫 줄에 NN과 KK가 주어진다. NN은 공개 일정이 주어지는 날의 수이고, KK는 구독 한 번이 유지되는 날의 수이다 (1≤K≤N1 \le K \le N). 다음 줄에는 길이가 NN인 문자열이 주어진다. ii번째 문자는 ii일에 첫 번째 서비스(1)만 새 에피소드를 공개하는지, 두 번째 서비스(2)만 공개하는지, 둘 다(B) 공개하는지를 나타낸다.

출력

정수 하나를 출력한다. 매일 새 에피소드를 볼 수 있도록 스트리밍 서비스 구독을 구매해야 하는 횟수이다.

제한

N≤400 000N \le 400\,000

예제2

  1. 예제 1

    입력
    3 2
    121
    
    예상 출력
    3
    
  2. 예제 2

    입력
    8 3
    1B21B212
    
    예상 출력
    5