만드는 중입니다

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

보물 찾기 게임

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

요약
무향 그래프에서 두 플레이어가 토큰을 옮기는 게임의 각 시작 정점에서 앨리스가 보물 정점을 무한히 방문하게 할 수 있는지 판정합니다.
난이도

보통10점 중 7점

유형
그래프, 게임 이론, BFS
정답자
아직 제출이 없습니다

문제

1번부터 NN번까지 NN개의 정점과 MM개의 양방향 간선으로 이루어진 그래프가 있다. 모든 정점은 적어도 하나의 간선과 연결되어 있다. 정점 중 일부는 Alice의 소유이고, 나머지는 Bob의 소유이다. 정점 일부에는 보물이 있다.

Alice와 Bob은 그래프의 한 정점에 말을 놓고 게임을 한다. 턴이 시작할 때 말이 Alice의 정점에 있으면 Alice가, Bob의 정점에 있으면 Bob이 현재 정점과 이웃한 간선 하나를 골라 반대쪽 끝점으로 말을 옮겨야 한다. 말을 제자리에 둘 수는 없다.

말이 보물이 있는 정점에 도착하면 보물을 하나 얻는다. 이미 방문한 정점이라도 보물이 있는 정점이라면 말이 다시 올 때마다 보물을 하나씩 더 얻는다.

Alice의 목표는 말이 보물이 있는 정점을 무한히 방문하도록 하는 것이고, Bob의 목표는 이를 막는 것이다. 정확히 말하면, 1010010^{100}턴 동안 게임을 진행했을 때 109010^{90}번 이상의 턴에서 말이 보물이 있는 정점에 있으면 Alice가 이기고, 그렇지 않으면 Bob이 이긴다.

두 사람이 항상 최적의 전략으로 플레이할 때, 각 정점에서 게임을 시작하면 누가 이기는지 구하시오.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤501 \le T \le 50)

각 테스트 케이스의 첫 줄에는 정수 NN, MM이 주어진다. (1≤N≤100 0001 \le N \le 100\,000, 1≤M≤200 0001 \le M \le 200\,000)

다음 줄에는 길이 NN의 문자열이 주어진다. 각 문자는 A 또는 B이며, ii번째 문자가 A이면 ii번 정점은 Alice의 소유이고, B이면 Bob의 소유이다.

다음 줄에는 길이 NN의 문자열이 주어진다. 각 문자는 T 또는 .이며, ii번째 문자가 T이면 ii번 정점에 보물이 있고, .이면 보물이 없다.

다음 MM개의 줄에는 간선의 양 끝점 번호 uiu_i, viv_i가 공백으로 구분되어 주어진다. (1≤ui,vi≤N1 \le u_i, v_i \le N, ui≠viu_i \neq v_i) 같은 정점 쌍을 잇는 간선은 둘 이상 존재하지 않는다.

모든 테스트 케이스에서 NN의 합과 MM의 합은 각각 2,000,000을 넘지 않는다.

출력

각 테스트 케이스마다 첫 줄에 "Case #CC"를 출력한다. 이때 CC는 테스트 케이스 번호이다. 다음 줄에는 A 또는 B로 이루어진 길이 NN의 문자열을 출력한다. ii번 정점에 말을 놓고 게임을 시작할 때 Alice가 이기면 A, Bob이 이기면 B를 출력한다.

예제1

  1. 예제 1

    입력
    2
    5 5
    BBAAB
    ...TT
    1 2
    1 5
    2 3
    5 3
    3 4
    5 3
    BBAAB
    ...TT
    1 2
    1 4
    3 5
    
    예상 출력
    Case #1
    BBAAB
    Case #2
    BBABA