세 개의 탑
시간 제한2초메모리 제한512 MB
B, S, C 세 가지 색으로 이루어진 블록 문자열에서, 단색 탑을 세 개 이하로 쌓아 모두 사용할 수 있고 탑의 높이가 서로 다른 가장 긴 연속 구간의 길이를 구합니다.
문제
Bythony는 게임을 좋아한다. 그의 방에는 색이 칠해진 블록 개가 한 줄로 놓여 있다. 각 블록은 흰색, 회색, 검은색 중 하나이다. Bythony는 줄에서 연속된 구간을 하나 골라, 그 구간의 블록으로 탑을 쌓으려 한다.
각 탑은 한 가지 색의 블록으로만 이루어지며, 탑의 색은 서로 달라야 한다. 따라서 최대 세 개의 탑을 쌓을 수 있다. 탑의 높이, 즉 탑을 이루는 블록의 개수도 서로 달라야 한다. Bythony는 고른 구간의 블록을 모두 사용해야 한다. 이 조건을 만족하는 가장 긴 연속 구간의 길이를 구하는 프로그램을 작성하라.
입력
첫 줄에 블록의 개수 ()이 주어진다. 둘째 줄에는 길이 의 문자열 이 주어진다. 각 는 B, S, C 중 하나이며, 번째 블록의 색을 나타낸다. B는 흰색, S는 회색, C는 검은색이다. 이 글자들은 폴란드어 색 이름 biały, szary, czarny에서 가져온 것이다.
배점의 30%에 해당하는 테스트에서는 이다.
출력
조건을 만족하는 가장 긴 구간에 포함된 블록의 개수를 한 줄에 출력한다.
힌트
Bythony는 블록 6개로 이루어진 구간 BSSBCS를 고를 수 있다. 이 구간으로 높이 3의 회색 탑, 높이 2의 흰색 탑, 높이 1의 검은색 탑을 만들 수 있다.