K-굿니스 문자열
면접 대비메모리 제한1024 MB
문자열에서 정확히 K개의 대칭 위치 쌍이 서로 다르도록 만들기 위해 필요한 최소 문자 변경 횟수를 구한다.
문제
Charles는 문자열의 굿니스 점수를 인 모든 중 인 의 개수로 정의한다(1-indexed). 예를 들어 문자열 CABABC는 이고 이므로 굿니스 점수가 2이다.
Charles는 Ada에게 대문자로만 이루어진 길이 의 문자열 를 주고, 굿니스 점수가 인 문자열로 바꾸라고 했다. 한 번의 연산으로 Ada는 문자열의 임의의 문자를 임의의 대문자로 바꿀 수 있다. 주어진 문자열을 굿니스 점수가 인 문자열로 바꾸는 데 필요한 최소 연산 횟수를 구하시오.
입력
입력의 첫 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 두 정수 과 가 주어진다. 둘째 줄에는 대문자로만 이루어진 길이 의 문자열 가 주어진다.
출력
각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 는 테스트 케이스 번호(1부터 시작)이고, 는 주어진 문자열 를 굿니스 점수가 인 문자열로 바꾸는 데 필요한 최소 연산 횟수이다.
제한
- .
- .
힌트
예제 1에서는 주어진 문자열의 굿니스 점수가 이미 1이다. 따라서 필요한 최소 연산 횟수는 0이다.
예제 2에서는 굿니스 점수를 2로 만들기 위해 인덱스 1의 문자를 B로 바꾸는 방법이 있다. 따라서 필요한 최소 연산 횟수는 1이다.