만드는 중입니다

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

Thwack!

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

요약
1차원 격자에 흑돌, 백돌, 빈 칸이 주어질 때, 두 사람이 최적으로 둘 경우 선공이 이기는 첫 수를 모두 구하는 문제입니다.
난이도

보통10점 중 7점

유형
게임 이론, 문자열
정답자
아직 제출이 없습니다

문제

Thwack은 게임 보드라고 부르는 1차원 칸 위에서 진행하는 게임이다. 각 칸에는 검은 돌이나 흰 돌이 있거나, 비어 있다.

두 플레이어가 번갈아 한 수씩 둔다. 한 수에서는 색이 서로 다른 인접한 돌 두 개를 고른 뒤, 그중 하나를 골라 다른 돌을 잡는다. 즉, 한 돌이 다른 돌의 자리로 이동하면서 그 돌을 제거한다. 자신의 차례인데 색이 다른 인접한 돌 쌍이 없으면 그 플레이어가 진다.

Thwack에는 기본 초기 배치가 없다. 칸에 돌을 어떤 배치로든 놓아 게임을 만들 수 있다.

주어진 초기 배치에서 두 플레이어가 최선을 다할 때 첫 번째 플레이어가 이기는 첫 수를 모두 나열하라.

입력

첫 줄에 게임 보드의 칸 수 NN (1≤N≤1001 \leq N \leq 100)이 주어진다.

둘째 줄에는 길이가 NN인 문자열이 주어진다. 문자열은 B, W, . 문자로만 이루어져 있다. B는 검은 돌, W는 흰 돌, .은 빈 칸을 나타낸다.

출력

첫 줄에 최선을 다할 때 첫 번째 플레이어가 이기는 첫 수의 개수 WW를 출력한다.

이어서 WW개의 줄에 두 정수 AiA_i, DiD_i (1≤Ai,Di≤N1 \leq A_i, D_i \leq N, ∣Ai−Di∣=1|A_i - D_i| = 1)를 출력한다. 이는 첫 수에서 AiA_i 위치의 돌이 DiD_i 위치의 돌을 잡는다는 뜻이다.

줄은 사전순으로 출력한다. 1 이상 WW 미만인 모든 ii에 대해 Ai<Ai+1A_i < A_{i+1}이거나, Ai=Ai+1A_i = A_{i+1}이고 Di<Di+1D_i < D_{i+1}이어야 한다.

예제5

  1. 예제 1

    입력
    4
    BWBW
    
    예상 출력
    2
    2 3
    3 2
    
  2. 예제 2

    입력
    11
    .BW.WB..W..
    
    예상 출력
    0
    
  3. 예제 3

    입력
    8
    BBBBW.BW
    
    예상 출력
    1
    5 4
    
  4. 예제 4

    입력
    9
    BBBBBW.BW
    
    예상 출력
    0
    
  5. 예제 5

    입력
    12
    WBBWBWWBBWBW
    
    예상 출력
    5
    2 1
    4 5
    5 4
    10 11
    11 10