만드는 중입니다

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

랜덤 다전제

면접 대비

시간 제한2초메모리 제한512 MB

요약
A와 B가 이길 판이 순환하는 문자열에서, 시작 위치 s와 판 수 g로 정해진 승부가 몇 판 만에 끝나는지 각 질의마다 구하고 그 합을 구합니다.
난이도

보통10점 중 5점

유형
문자열, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

Alice와 Bert는 다양한 보드 게임을 순서대로 플레이하는 다전제 (이를테면 5판 3선승 혹은 7판 4선승) 게임을 자주 한다. 너무 자주 하다 보니 이제는 조금 특이한 "랜덤 다전제" 놀이를 하기로 했다. 먼저 두 사람은 NN개의 보드 게임을 준비하고, 편의상 1번부터 NN번까지 번호를 붙인다. 두 사람은 각자 상대보다 잘하는 보드 게임이 있어서, ii번째 보드 게임의 승자는 항상 WiW_i로 정해져 있다고 가정한다. (WiW_i는 문자열 WW의 ii번째 문자이며, WiW_i가 A이면 Alice의 승리, B이면 Bert의 승리가 예상된다.)

예를 들어 N=13N = 13이고 WW가 ABABAABBABAAB이면 W1W_1은 A이므로 1번 보드 게임은 Alice가 이길 것으로 예상된다.

다음으로 두 사람은 MM개의 랜덤 다전제를 정한다. jj번째 다전제는 두 정수 (sj,gj)(s_j, g_j)로 표현하며, gjg_j는 항상 홀수이다.

  • 이 다전제는 최대 gjg_j판의 게임이다. sjs_j번 보드 게임부터 (sj+gj−1)(s_j + g_j - 1)번 보드 게임까지 순서대로 플레이하며, 먼저 (gj+1)/2(g_j + 1)/2승을 올리는 사람이 다전제의 승자가 된다.
  • NN번 보드 게임을 마친 뒤에도 게임을 더 진행해야 하면 1번 보드 게임부터 이어서 플레이한다.
  • gjg_j번째 게임을 하기 전에 승자가 가려지면 나머지 게임은 플레이하지 않는다. 따라서 승자가 가려질 때까지 최소 (gj+1)/2(g_j + 1)/2번, 최대 gjg_j번의 게임을 하게 된다. jj번째 다전제에서 두 사람이 플레이하는 게임의 수를 AjA_j라 한다.

예를 들어 M=5M = 5이고 s=[1,3,11,12,13]s = [1, 3, 11, 12, 13], g=[5,7,5,5,5]g = [5, 7, 5, 5, 5]라 하자.

  • 첫 번째 다전제는 (s,g)=(1,5)(s, g) = (1, 5)로 5판 3선승이다. W1W_1, W3W_3, W5W_5가 모두 A이므로 5번째 게임을 마친 뒤 Alice가 승자가 된다. 이때 A1=5A_1 = 5이다.
  • 두 번째 다전제는 (s,g)=(3,7)(s, g) = (3, 7)로 7판 4선승이다. Alice가 3, 5, 6, 9번 보드 게임을 이겨 승자가 된다. 이때 A2=7A_2 = 7이다.
  • 세 번째 다전제는 (s,g)=(11,5)(s, g) = (11, 5)로 5판 3선승이다. Alice가 11번, 12번 게임을 이겨 2승을 거두고, 13번 게임은 Bert가 이긴다. 14번 게임이 없으므로 1번부터 다시 이어가며, Alice가 3승째를 거두어 승자가 된다. 총 4판을 플레이하므로 A3=4A_3 = 4이다.
  • 네 번째 다전제는 (s,g)=(12,5)(s, g) = (12, 5)로 5판 3선승이다. Alice가 12번, 1번, 3번 게임을 이겨 3승을 거둔다. A4=5A_4 = 5이다.
  • 다섯 번째 다전제는 (s,g)=(13,5)(s, g) = (13, 5)로 5판 3선승이다. Bert가 13번, 2번, 4번 게임을 이겨 3승을 거둔다. A5=5A_5 = 5이다.

입력으로 NN, MM, WW와 배열 ss, gg가 주어졌을 때 ∑j=1MAj\sum_{j=1}^{M} A_j의 값을 구한다. 위 예시의 경우 A=[5,7,4,5,5]A = [5, 7, 4, 5, 5]이므로 정답은 26이다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 NN, MM이 공백으로 구분되어 주어진다. 둘째 줄에는 A와 B로만 이루어진 길이 NN의 문자열 WW가 공백 없이 주어진다. 다음 MM개의 줄에는 jj번째 랜덤 다전제를 나타내는 두 정수 (sj,gj)(s_j, g_j)가 공백으로 구분되어 차례로 주어진다 (1≤j≤M1 \le j \le M).

출력

각 테스트 케이스의 정답인 ∑j=1MAj\sum_{j=1}^{M} A_j를 한 줄에 출력한다.

제한

  • 1≤T≤101 \le T \le 10
  • 1≤N,M≤250 0001 \le N, M \le 250\,000
  • 1≤i≤N1 \le i \le N인 모든 ii에 대하여: WiW_i는 A 또는 B이다.
  • 1≤j≤M1 \le j \le M인 모든 jj에 대하여:
    • 1≤sj≤N1 \le s_j \le N
    • 1≤gj≤N1 \le g_j \le N이며, gjg_j는 항상 홀수이다.

예제1

  1. 예제 1

    입력
    3
    13 5
    ABABAABBABAAB
    1 5
    3 7
    11 5
    12 5
    13 5
    3 3
    ABA
    1 3
    2 3
    3 3
    5 5
    ABABB
    1 5
    2 5
    3 5
    4 5
    5 5
    
    예상 출력
    26
    8
    23