아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소개 세션 조직

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

요약
이미 아는 관계를 바탕으로 질문받은 각 두 사람이 서로 알게 되는 가장 짧은 시간을 분 단위로 구하고, 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, BFS
정답자
아직 제출이 없습니다

문제

Apricot Rules LLC가 조직을 개편한 뒤, 관리자 MM명과 비관리자 NN명으로 이루어진 대규모 새 팀이 만들어졌다. 팀원 중에는 서로 모르는 사람이 많아서 여러 번의 소개 세션을 잡아야 한다. 이미 서로 아는 팀원 쌍은 주어진다.

소개 세션은 각각 1분 길이의 시간 슬롯에서 진행된다. 첫 번째 슬롯은 오전 8시 00분에 시작해서 오전 8시 01분에 끝난다. ii번째 슬롯은 오전 8시 00분에서 i−1i-1분 뒤에 시작해서 ii분 뒤에 끝난다. 한 슬롯에는 세션이 하나 이상 들어갈 수 있다. 팀원은 한 슬롯에 최대 하나의 세션에 배정될 수 있다. 각 세션에는 정확히 세 명이 참여한다. 반드시 관리자여야 하는 담당 관리자 aa와, 관리자든 비관리자든 상관없는 두 명 bb, cc이다. 세션이 성립하려면 담당 관리자 aa가 bb와 cc를 이미 알고 있어야 한다. 세션이 끝나면 bb와 cc도 서로를 알게 된다. bb나 cc 중 한 명 또는 둘 다 관리자라면, 둘을 모두 포함하는 이후 세션의 담당 관리자는 둘 중 누구든 될 수 있다.

일부 사람 쌍에 대해, 서로 알게 되기까지 걸리는 최단 시간을 구하려고 한다. 이 과정으로는 서로 알게 될 수 없는 경우도 판별해야 한다. 세션이 시작되기 전에 이미 서로 아는 두 사람의 최단 시간은 0분이다. 쌍마다 따로 생각하므로, 가장 좋은 조직 방식은 쌍마다 달라질 수 있다.

입력

첫 줄에는 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 관리자 수 MM, 비관리자 수 NN, 질문할 쌍의 수 PP가 적힌 한 줄로 시작한다. 관리자는 11부터 MM까지, 비관리자는 M+1M+1부터 M+NM+N까지 번호가 매겨진다.

이어서 길이가 M+NM+N인 문자열이 M+NM+N줄 주어진다. ii번째 줄의 jj번째 문자 Ci,jC_{i,j}는 과정 시작 전에 팀원 ii와 jj가 서로 알고 있으면 Y, 아니면 N이다. 그 다음 PP줄이 주어지며, kk번째 줄에는 kk번째로 질문할 쌍의 팀원 번호 두 개 AkA_k, BkB_k가 적혀 있다.

출력

각 테스트 케이스마다 Case #x: y1 y2 y3 ⋯ yP 형식으로 한 줄을 출력한다. 여기서 xx는 테스트 케이스 번호(1부터 시작)이다. yiy_i는 팀원 AkA_k와 BkB_k가 서로 알게 될 수 없으면 −1-1이고, 그렇지 않으면 과정이 시작된 뒤 두 사람이 서로 알게 되기까지 걸리는 최단 시간(분)이다.

제한

  • 1≤T≤1001≤T≤100.
  • 모든 i,ji,j에 대해 Ci,jC_{i,j}는 대문자 Y 또는 N이다.
  • 모든 i,ji,j에 대해 Ci,j=Cj,iC_{i,j}=C_{j,i}이다.
  • 모든 ii에 대해 Ci,i=C_{i,i}= Y이다. (팀원은 자기 자신을 안다.)
  • 1≤Ak1≤A_k
  • 모든 k≠ℓk≠ℓ에 대해 (Ak,Bk)≠(Aℓ,Bℓ)(A_k,B_k)≠(A_ℓ,B_ℓ)이다. (같은 쌍을 두 번 질문하지 않는다.)

예제1

  1. 예제 1

    입력
    3
    2 2 3
    YYYY
    YYNN
    YNYN
    YNNY
    2 3
    2 4
    1 4
    3 2 2
    YYYNN
    YYNYN
    YNYNY
    NYNYN
    NNYNY
    2 5
    4 5
    1 1 1
    YN
    NY
    1 2
    
    예상 출력
    Case #1: 1 1 0
    Case #2: 2 3
    Case #3: -1