빨간점, 파란점 2

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

요약
원 위의 점을 같은 색끼리 현으로 이어 모든 점을 사용할 때, 끝점이 아닌 곳에서 교차하는 현 쌍 수의 최솟값을 구한다.
난이도

보통10점 중 6점

유형
그리디, 동적 계획법, 조합론, 스택
정답자
아직 제출이 없습니다

문제

원주 상에 동일한 간격으로 NN개의 점이 배치되어 있다. 각 점은 빨간색 또는 파란색이고, 빨간 점이 22개 이상, 파란 점이 22개 이상 존재한다. 당신은 점들 사이를 현으로 이어 어떤 점도 적어도 하나의 현과 연결되도록 할 것이다. 이 때, 각 현이 잇는 두 점은 서로 같은 색깔이어야 한다.

당신의 목표는 끝점이 아닌 곳에서 교차하는 현의 쌍 개수를 최소화하는 것이다. 원주 상의 NN개 점들의 색깔이 시계방향으로 주어질 때, 모든 점이 적어도 하나의 현과 연결되도록 하는 방법 중 교차하는 현의 쌍 개수의 최솟값을 출력하여라.

입력

첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 TT 가 주어지고,

이후 차례로 TT 개의 테스트 케이스가 주어진다. (1≤T≤1,4831 \le T \le 1\\,483)

각 테스트 케이스의 첫 줄에는 정수 NN이 주어진다 (4≤N≤500,0004 \le N \le 500\\,000).

다음 줄에는 길이 NN의 문자열이 주어진다. 문자열의 ii번째 문자는 NN개 점 중 임의로 정해진 하나의 점으로부터 시계방향으로 ii번째 위치에 있는 점의 색깔을 나타낸다. R이면 빨간색 점, B이면 파란색 점임을 뜻한다. R의 개수 및 B의 개수는 22 이상임이 보장된다.

모든 테스트 케이스에서 NN의 합은 5,000,0005\\,000\\,000을 넘지 않는다.

출력

각 테스트 케이스마다 첫 줄에는 “Case #CC”를 출력하여야 한다. 이때 CC는 테스트 케이스의 번호이다.

다음 줄에는 교차하는 현의 쌍 수의 최솟값을 출력한다.

예제1

  1. 예제 1

    입력
    2
    4
    RBRB
    9
    RRBBRRRBR
    
    예상 출력
    Case #1
    1
    Case #2
    0