만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

빨간점, 파란점 2

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

요약
원 위에 빨강과 파랑 점이 N개 주어질 때, 모든 점을 같은 색끼리 잇는 현들 가운데 서로 교차하는 쌍이 가장 적은 경우의 수를 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 기하, 그리디
정답자
아직 제출이 없습니다

문제

원주 위에 같은 간격으로 NN개의 점이 놓여 있다. 각 점은 빨간색 또는 파란색이고, 빨간 점과 파란 점은 각각 2개 이상 있다. 점들을 현으로 이어서 모든 점이 적어도 하나의 현과 연결되도록 한다. 이때 각 현이 잇는 두 점은 색깔이 같아야 한다.

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

입력

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

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

다음 줄에는 길이 NN의 문자열이 주어진다. 문자열의 ii번째 문자는 임의로 정한 기준점에서 시계 방향으로 ii번째에 있는 점의 색깔이다. R은 빨간 점, B는 파란 점을 뜻한다. R의 개수와 B의 개수는 모두 2 이상임이 보장된다.

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

출력

각 테스트 케이스마다 첫 줄에 "Case #CC"를 출력한다. 여기서 CC는 테스트 케이스의 번호이다. 다음 줄에는 교차하는 현 쌍 수의 최솟값을 출력한다.

예제1

  1. 예제 1

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