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

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

판치기

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

요약
H와 T로 이루어진 동전 배열이 주어질 때, 매번 서로 다른 K개의 동전을 뒤집어 모든 동전을 T로 만드는 최소 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 5점

유형
그리디, 수학, 구현, 조합론
정답자
아직 제출이 없습니다

문제

(N)개의 동전을 바닥에 놓고, 임의의 동전을 뒤집는 것을 반복해 모두 뒷면이 보이는 상태로 바꾸면 이기는 게임이다.

판치기 경력 20년의 치훈이는 판치기 최고의 기술인 "(K)-뒤집기"를 익혔다. "(K)-뒤집기"는 서로 다른 (K)개의 동전을 한 번에 뒤집는 기술이다.

초기 동전의 상태가 주어진다. "(K)-뒤집기"만 사용해 게임을 이기려면 최소 몇 번 사용해야 할까?

입력

첫째 줄에 (N), (K)가 주어진다.

둘째 줄에 초기 동전의 상태를 나타내는 문자열 (S)가 주어진다.

(S)의 (i)번째 문자가 'H'면 (i)번째 동전이 앞면, 'T'면 (i)번째 동전이 뒷면이 보이는 상태다.

출력

첫째 줄에 문제의 답을 출력한다.

모두 뒷면이 보이는 상태로 바꿀 수 없다면 대신 -1을 출력한다.

제한

  • 1 ≤ (N) ≤ 3,000
  • 1 ≤ (K) ≤ (N)

예제2

  1. 예제 1

    입력
    5 3
    HHHHH
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 2
    THT
    
    예상 출력
    -1