실행 시간 제한 | 메모리 제한 |
---|---|
2 초 | 1024 MB |
우주과학자 민수는 국제 학술대회에서 최고의 로봇 연구 결과를 발표하기 위해 대의 로봇으로 특별한 연구를 계획하고 있습니다(, 은 짝수).
민수의 로봇은 GalaxyBots와 HyperBots 두 가지 모델로 이루어져 있습니다. 연구 결과를 더 완벽하게 만들기 위해, 민수는 GalaxyBots 로봇을 가능한 한 많이 짝수 번째에 위치시키려고 합니다 (첫 번째 로봇은 홀수 번째 위치, 다음 로봇은 짝수 번째 위치로 계속됩니다). 하지만, 로봇들과 직접적으로 통신할 방법이 제한적이어서, 민수는 로봇들의 처음부터 특정 위치까지를 선택하고, 그 범위 안의 로봇들의 순서를 거꾸로 바꾸는 방법밖에 없습니다. 그리고 선택한 범위의 길이는 짝수여야 합니다.
이 조건 하에서, 민수가 원하는 배치를 만들기 위해 필요한 최소한의 순서 변경 횟수를 구해주세요.
입력의 첫 번째 줄에는 이 주어집니다.
두 번째 줄에는 왼쪽에서 오른쪽으로 로봇들의 초기 순서를 나타내는 길이 의 문자열이 포함되어 있습니다. 각 'H'는 HyperBots을 나타내고, 각 'G'는 GalaxyBots를 나타냅니다.
필요한 최소한의 순서 변경 횟수를 한 줄에 출력합니다.
14 GGGHGHHGHHHGHG
1
이 예제에서는 처음부터 여섯 번째 로봇까지의 순서를 뒤집으면 원하는 배열을 얻을 수 있습니다.
GGGHGHHGHHHGHG (변경 전)
-> HGHGGGHGHHHGHG (변경 후)
바꾸기 전에는 GalaxyBots 4개가 짝수 위치에 있었습니다. 그러나 순서를 바꾼 후에는 GalaxyBots 6개가 짝수 위치에 왔습니다. 이 방법으로 짝수 위치에 6마리의 GalaxyBots 를 놓을 수 있는데, 이것이 가능한 최적의 해답입니다.
출처: USACO 2022 US Open Contest, Bronze Problem 1. Photoshoot