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

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

이름과 사용자 아이디 짝짓기

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

요약
출입 기록과 메시지 기록, 사용자 ID 목록이 주어질 때 각 범인의 ID가 유일하게 정해지는지 판별한다.
난이도

보통10점 중 6점

유형
완전 탐색, 시뮬레이션, 해시맵
정답자
아직 제출이 없습니다

문제

FBI가 범죄자들이 연락 거점으로 쓰는 은신처를 감시하고 있다. 거점에서 빠져나가는 이메일을 해독하면 모든 메시지를 읽고 보낸 사람의 사용자 아이디를 확인할 수 있지만, 범죄자들은 아무 의미 없는 알파벳 문자열을 아이디로 쓰기 때문에 아이디만으로는 정체를 알 수 없다. 각 범죄자는 정확히 하나의 아이디만 사용하며, 서로 다른 범죄자가 같은 아이디를 쓰는 일은 없다.

FBI가 가진 유일한 추가 정보는 누가 은신처에 드나들었는지 기록한 출입 로그다. 메시지는 그 순간 은신처 안에 있는 사람만 보낼 수 있으므로, 어떤 아이디로부터 메시지가 가로채이면 그 아이디의 주인은 그때 은신처 안에 있던 사람 중 하나여야 한다. 출입 기록과 가로챈 메시지를 종합하면 아이디를 한 명의 이름으로 특정할 수 있는 경우가 많다.

각 범죄자에 대해, 로그만으로 그 사람의 사용자 아이디를 유일하게 결정할 수 있는지 판단하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있으며, 연속한 두 테스트 케이스는 빈 줄로 구분된다.

각 테스트 케이스의 첫 줄에는 은신처를 사용하는 범죄자의 수 nn (1≤n≤201 \le n \le 20)이 주어진다. 다음 줄에는 nn개의 사용자 아이디가 공백 하나로 구분되어 주어진다(이 줄은 80자보다 길 수 있다).

그 뒤로는 시간 순서대로 로그 항목이 주어진다. 각 항목은 type arg 형식이다.

  • E arg — 이름이 arg인 범죄자가 은신처에 들어왔다.
  • L arg — 이름이 arg인 범죄자가 은신처에서 나갔다.
  • M arg — 사용자 아이디 arg로부터 메시지가 가로채였다.

Q 한 글자만 있는 줄은 로그의 끝을 뜻한다. 로그가 시작될 때 은신처는 비어 있다. 모든 아이디가 로그에 등장하지는 않을 수 있지만, 모든 범죄자의 이름은 로그에 적어도 한 번은 등장함이 보장된다. 모든 이름과 아이디는 소문자 알파벳으로만 이루어지며 길이는 최대 20이다.

출력

각 테스트 케이스마다 nn줄을 출력하며, 범죄자 이름의 사전순으로 정렬한다. 각 줄은 name:userid 형식이다. 여기서 userid는 로그로 유일하게 결정되는 그 범죄자의 사용자 아이디이며, 결정할 수 없으면 ???를 출력한다. 연속한 두 테스트 케이스의 출력은 빈 줄로 구분한다.

예제3

  1. 예제 1

    입력
    1
    
    7
    bigman mangler sinbad fatman bigcheese frenchie capodicapo
    E mugsy
    E knuckles
    M bigman
    M mangler
    L mugsy
    E clyde
    E bonnie
    M bigman
    M fatman
    M frenchie
    L clyde
    M fatman
    E ugati
    M sinbad
    E moriarty
    E booth
    Q
    
    예상 출력
    bonnie:fatman
    booth:???
    clyde:frenchie
    knuckles:bigman
    moriarty:???
    mugsy:mangler
    ugati:sinbad
    
  2. 예제 2

    입력
    1
    
    1
    abc
    E john
    M abc
    Q
    
    예상 출력
    john:abc
    
  3. 예제 3

    입력
    1
    
    2
    xx yy
    E a
    E b
    M xx
    M yy
    Q
    
    예상 출력
    a:???
    b:???