자물쇠와 열쇠

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

요약
트리 구조 미로에서 한 번에 하나의 열쇠만 들 수 있는 조건 하에 색깔별 잠긴 문을 열어 시작 방에서 목적지 방까지 도달 가능한지 판단하는 문제입니다.
난이도

보통10점 중 7점

유형
DFS, 그래프, 시뮬레이션
정답자
아직 제출이 없습니다

문제

마법사 재환이는 VV개의 방과 V−1V-1개의 문으로 이루어진 미로에 갇혀 있습니다. 각 문은 두 방을 양방향으로 연결하며, 어떤 방에서 다른 어떤 방으로도 항상 이동할 수 있습니다(즉, 미로는 트리 구조입니다). 서로 다른 CC가지 색의 자물쇠 CC개와 같은 CC가지 색의 열쇠 CC개가 있습니다. 각 문은 최대 한 개의 자물쇠로 잠겨 있을 수 있고, 각 방에는 최대 한 개의 열쇠가 놓여 있습니다. 각 색의 자물쇠와 열쇠는 정확히 하나씩 존재합니다.

재환이는 마법사라서 원래는 마법으로 자물쇠를 열 수 있지만, 주문책을 두고 오는 바람에 지금은 마법을 전혀 쓸 수 없습니다.

재환이는 지금 방 XX에 있고, 주문책이 있는 방 YY로 가려고 합니다. 한 번에 현재 방과 문으로 연결된 인접한 방으로 이동할 수 있습니다. 문이 잠겨 있다면 그 자물쇠와 같은 색의 열쇠를 들고 있어야만 문을 열고 지나갈 수 있습니다. 한 번 연 문은 계속 열린 채로 남아 이후에는 자유롭게 오갈 수 있습니다.

재환이는 한 번에 열쇠를 하나만 들 수 있습니다. 또한 나중에 다시 쓰려고 열쇠를 다른 방에 내려놓을 수 없으며, 잠긴 문을 열면 그 열쇠는 사라집니다.

미로의 구조와 열쇠 CC개, 자물쇠 CC개의 위치가 주어질 때, 재환이가 방 XX에서 방 YY로 이동할 수 있는지 판정하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다.

각 테스트 케이스의 첫째 줄에는 네 정수 VV, CC, XX, YY가 주어집니다. VV는 방의 개수(1≤V≤15001 \le V \le 1500), CC는 자물쇠(그리고 열쇠)의 개수(0≤C<V0 \le C < V)이며, XX와 YY는 각각 출발하는 방과 도착하는 방의 번호입니다. 방은 00번부터 V−1V-1번까지 번호가 매겨져 있습니다.

이어지는 CC개의 수는 색 번호가 커지는 순서대로(색 00부터 색 C−1C-1까지) 각 색의 열쇠가 놓인 방의 번호입니다.

그다음 V−1V-1개의 줄에는 문 정보 AA BB LL이 주어집니다. 0≤L<C0 \le L < C이면 방 AA와 BB를 잇는 문이 색 LL의 자물쇠로 잠겨 있다는 뜻이고, L=−1L = -1이면 잠겨 있지 않다는 뜻입니다.

입력의 마지막 줄은 0 0 0 0입니다.

출력

각 테스트 케이스마다 한 줄을 출력합니다. 재환이가 방 XX에서 방 YY로 이동할 수 있으면 Possible을, 그렇지 않으면 Impossible을 출력합니다.

예제1

  1. 예제 1

    입력
    1 0 0 0
    
    3 1 0 2
    1
    0 1 -1
    0 2 0
    
    3 2 0 2
    1 2
    0 1 1
    0 2 0
    
    5 3 0 4
    2 0 3
    0 1 0
    0 2 -1
    1 3 1
    2 4 2
    
    0 0 0 0
    
    예상 출력
    Possible
    Possible
    Impossible
    Possible