| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 44 | 19 | 15 | 42.857% |
온라인상의 단체 대화방에서는 여러 사람들이 메시지를 보내고 읽을 수 있다.
단체 대화방의 규칙은 다음과 같다:
사람들은 자신이 보낸 메시지를 누가 읽었는지 매우 궁금해한다. 하지만 각각의 메시지를 읽은 사람의 목록을 유지하는 일은 매우 비효율적이므로, 단체 대화방에서는 사람들이 보낸 메시지 내용에 덧붙여 그 메시지를 아직까지 읽지 않은 사람의 수를 알려준다.
단체 대화방에서 나열되는 메시지의 형식은 다음과 같다:
[<sender>] <text> (<unread_count>)
<sender>는 보낸 사람의 이름이며, 알파벳 대소문자로 이루어져 있다.<text>는 메시지의 본문이며, 알파벳 대소문자, 숫자, 공백 문자로 이루어져 있다. 빈 문자열이거나 공백 문자만으로 이루어져 있지 않다.<unread_count>는 대화방에서 해당 메시지를 아직 읽지 않은 사람의 수이다.다음은 단체 대화방에 A, B, C 세 사람이 있고 두 개의 메시지가 있는 예시이다.
| [A] The meeting starts at 3 (1) |
| [B] Yes I checked (2) |
위의 예시는 간단하지만, 매우 많은 사람들이 있는 단체 대화방의 경우 각각의 메시지를 정확히 어떤 사람들이 읽었는지 알기 어렵다. $N$명의 사람이 있는 단체 대화방에서 $M$개의 메시지 목록이 보낸 순서대로 주어질 때, 단체 대화방에서 제공하는 읽지 않은 사람 수 정보를 만족하는 경우가 존재하는지 알아보자.
첫 번째 줄에 단체 대화방에 속한 사람의 수 $N$과 대화 내역의 수 $M$이 공백으로 구분되어 주어진다. ($1 \leq N, M \leq 1\,000$)
다음으로 $N$개의 줄에 걸쳐 한 줄에 하나씩 대화방에 속한 사람들의 이름이 주어진다. 사람들의 이름은 모두 서로 다르며, 길이는 $1$자 이상 $20$자 이하이고 알파벳 대소문자만으로 이루어져 있다.
다음으로 $M$개의 줄에 걸쳐 한 줄에 하나씩 대화방의 메시지가 주어진다. 메시지의 형식은 위의 설명을 따르며, 모든 메시지의 길이의 합은 $1\,000\,000$ 이하이다. 보낸 사람의 이름은 위에서 주어진 이름 목록에 있음이 보장되며, 아직 읽지 않은 사람의 수는 $0$ 이상 $N$ 이하의 정수이다.
주어진 정보를 만족하는 것이 불가능하다면 IMPOSSIBLE을 출력한다.
주어진 정보를 만족하는 경우가 존재하지만 유일하지 않다면 POSSIBLE을 출력한다.
주어진 정보를 만족하는 경우가 유일하다면 UNIQUE를 출력한다.
1 1 Liar [Liar] This statement is false (1)
IMPOSSIBLE
3 2 Aa Bb Cc [Aa] OK (0) [Bb] YES (1)
POSSIBLE
4 3 A B C D [D] Some Text (1) [A] OK (2) [B] NO (3)
UNIQUE
4 5 A B C D [A] 3 2 1 (0) [B] Rock (1) [C] Scissor (1) [D] Rock (1) [C] NO (3)
UNIQUE
4 5 A B C D [A] 3 2 1 Go (0) [B] Rock (1) [C] Paper (1) [D] Rock (1) [C] YES (3)
UNIQUE
4 5 A B C D [A] t eX t (0) [B] Te xt (1) [C] tEX t (1) [D] T exT (2) [C] T e X t (2)
UNIQUE