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

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

수상한 저택

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

요약
최대 10개의 방과 문, 다른 방의 불을 켜는 스위치가 주어질 때, 침실에 도착해 침실 불만 켜진 상태로 만드는 최소 이동 및 스위치 조작 횟수를 구한다.
난이도

보통10점 중 7점

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

문제

블랙 씨는 커다란 저택에 혼자 산다. 이 저택의 전기 배선은 특이해서, 많은 전등 스위치가 스위치가 놓인 방이 아니라 다른 방의 전등을 제어한다.

늦은 밤 집에 돌아온 블랙 씨는 현관에 서 있고, 이때 현관을 제외한 모든 방의 불은 꺼져 있다. 그는 어둠을 무서워하기 때문에 다음 두 규칙을 반드시 지킨다.

  • 불이 꺼진 방에는 절대 들어가지 않는다.
  • 지금 자신이 있는 방의 불은 절대 끄지 않는다.

블랙 씨는 침실에 도착하면서, 마지막에는 침실 불만 켜져 있고 나머지 모든 불은 꺼진 상태로 만들고 싶어 한다.

저택에는 11번부터 RR번까지 번호가 매겨진 RR개의 방이 있다. 11번 방은 현관, RR번 방은 침실이다. 방들은 문으로 연결되어 있으며, 각 스위치는 어떤 방에 놓여 있고 (같은 방일 수도 있는) 어떤 방의 불을 제어한다.

현관 불만 켜진 채 현관에서 출발하여, 블랙 씨가 침실에 있고 오직 침실 불만 켜져 있게 만드는 행동의 순서를 구하라. 다음 각각을 한 걸음으로 센다.

  • 문을 통해 이웃한 방으로 이동하기
  • 불 켜기
  • 불 끄기

가능한 모든 방법 중 걸음 수의 최솟값을 출력하라.

입력

입력은 여러 개의 저택 정보로 이루어진다.

각 저택은 세 정수 RR, DD, SS (1≤R≤101 \le R \le 10)가 적힌 줄로 시작한다. RR은 방의 수, DD는 문의 수, SS는 스위치의 수이다.

이어지는 DD개의 줄에는 각각 두 정수 II와 JJ가 있으며, II번 방과 JJ번 방이 문으로 연결되어 있음을 뜻한다.

그다음 SS개의 줄에는 각각 두 정수 KK와 LL이 있으며, KK번 방에 LL번 방의 불을 제어하는 스위치가 있음을 뜻한다.

각 저택 정보 사이는 빈 줄로 구분된다. 입력은 R=D=S=0R = D = S = 0인 저택으로 끝나며, 이 저택은 처리하지 않는다.

출력

각 저택마다 한 줄을 출력한다.

블랙 씨가 성공할 수 있다면 다음을 출력한다.

Mr. Black needs X steps.

여기서 XX는 침실에 도착하여 침실 불만 남기는 데 필요한 최소 걸음 수이다.

불가능하다면 다음을 출력한다.

Poor Mr. Black! No sleep tonight!

예제4

  1. 예제 1

    입력
    3 3 4
    1 2
    1 3
    3 2
    1 2
    1 3
    2 1
    3 2
    
    2 1 2
    2 1
    1 1
    1 2
    
    0 0 0
    
    예상 출력
    Mr. Black needs 6 steps.
    Poor Mr. Black! No sleep tonight!
    
  2. 예제 2

    입력
    1 0 0
    0 0 0
    
    예상 출력
    Mr. Black needs 0 steps.
    
  3. 예제 3

    입력
    2 1 2
    1 2
    1 2
    2 1
    0 0 0
    
    예상 출력
    Mr. Black needs 3 steps.
    
  4. 예제 4

    입력
    4 4 6
    1 2
    2 3
    3 4
    1 4
    1 2
    2 3
    3 4
    4 1
    4 3
    1 4
    0 0 0
    
    예상 출력
    Mr. Black needs 3 steps.