JJOOII 2
시간 제한2초메모리 제한512 MB
J, O, I로 이루어진 문자열과 레벨 K가 주어질 때, 양끝 또는 중간에서 문자를 지워 K개의 J, K개의 O, K개의 I 순서 문자열을 만들면서 중간 삭제 횟수를 최소화한다.
문제
Bitaro는 생일 선물로 길이 의 문자열 를 받았다. 는 J, O, I 세 종류의 문자로 이루어져 있다.
양의 정수 에 대해, 개의 J, 개의 O, 개의 I가 이 순서대로 이어붙은 문자열을 레벨 의 JOI 문자열이라고 한다. 예를 들어 JJOOII는 레벨 2의 JOI 문자열이다.
Bitaro는 레벨 의 JOI 문자열을 좋아하기 때문에, 다음 세 연산을 원하는 횟수만큼 원하는 순서로 사용해 에서 레벨 의 JOI 문자열을 만들려고 한다.
- 연산 1 의 첫 번째 문자를 지운다.
- 연산 2 의 마지막 문자를 지운다.
- 연산 3 의 첫 번째도 마지막도 아닌 문자를 지운다.
연산 3은 시간이 많이 걸리므로, Bitaro는 연산 3을 가능한 한 적게 사용해 레벨 의 JOI 문자열을 만들고 싶어 한다.
길이 의 문자열 와 양의 정수 가 주어질 때, 에서 레벨 의 JOI 문자열을 만들기 위해 필요한 연산 3의 최소 횟수를 출력하는 프로그램을 작성하라. 연산만으로 레벨 의 JOI 문자열을 만들 수 없다면 을 출력한다.
입력
표준 입력에서 다음 데이터를 읽는다. 과 는 정수이다. 는 문자열이다.
N K
S
출력
표준 출력에 한 줄을 출력한다. 에서 레벨 의 JOI 문자열을 만들기 위해 필요한 연산 3의 최소 횟수를 출력한다. 레벨 의 JOI 문자열을 만들 수 없다면 을 출력한다.
제한
- .
- .
- 는
J,O,I로 이루어진 길이 의 문자열이다.