N-Credible Mazes

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

요약
차원 n과 인접한 격자점 사이의 경로 목록이 주어질 때, 시작점과 끝점이 연결되어 있는지 판정한다.
난이도

보통10점 중 4점

유형
그래프, DFS, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

n-tersection은 nn차원 공간(단, nn은 양의 정수) 위의 점으로, 모든 좌표가 음이 아닌 정수인 점을 말한다. 예를 들어 (1,2,3)(1, 2, 3)은 3차원 공간의 n-tersection이다.

두 n-tersection이 차원 수가 같고, 정확히 한 차원의 좌표만 11만큼 차이 날 때 두 점은 인접(adjacent)하다고 한다. 예를 들어 (1,2,3)(1, 2, 3)은 (0,2,3)(0, 2, 3), (2,2,3)(2, 2, 3), (1,2,4)(1, 2, 4)와 인접하지만, (2,3,3)(2, 3, 3), (3,2,3)(3, 2, 3), (1,2)(1, 2)와는 인접하지 않는다.

n-teresting space는 인접한 두 n-tersection을 직접 잇는 통로(path)들의 모음이다. n-credible maze는 이러한 n-teresting space에 시작 n-tersection과 도착 n-tersection 두 점을 함께 지정한 것이다.

각 미로에 대해, 주어진 통로만을 이용하여 시작 n-tersection에서 도착 n-tersection까지 이동할 수 있는지 판정하라.

입력

입력은 하나 이상의 미로 설명으로 이루어진다.

각 설명의 첫 줄에는 공간의 차원 nn이 주어진다(1≤n≤101 \le n \le 10이며 모든 좌표 값은 1010 미만이다).

다음 줄에는 음이 아닌 정수 2n2n개가 주어진다. 앞의 nn개는 시작 n-tersection의 좌표(낮은 차원부터), 뒤의 nn개는 도착 n-tersection의 좌표이다.

그 다음에는 0개 이상의 줄이 이어지며, 각 줄에는 음이 아닌 정수 2n2n개가 있어 인접한 두 n-tersection 사이의 통로 하나를 나타낸다(앞의 nn개가 한쪽 끝점, 뒤의 nn개가 다른 쪽 끝점). 이 목록은 -1 하나만 있는 줄로 끝난다.

여러 개의 미로 설명이 이어질 수 있다. 입력은 차원 값이 0인 줄로 끝나며, 이 종료용 0 뒤에는 아무 데이터도 없다.

출력

각 미로에 대해 입력에서의 순서를 Maze #k 형식으로 출력한다(첫 번째 미로는 Maze #1, 두 번째는 Maze #2 …). 같은 줄에, 시작 n-tersection에서 도착 n-tersection까지 공간을 통해 이동할 수 있으면 can be travelled를, 이동할 수 없으면 cannot be travelled를 이어서 출력한다.

예제3

  1. 예제 1

    입력
    2
    0 0 2 2
    0 0 0 1
    0 1 0 2
    0 2 1 2
    1 2 2 2
    -1
    3
    1 1 1 1 2 3
    1 1 2 1 1 3
    1 1 3 1 2 3
    1 1 1 1 1 0
    1 1 0 1 0 0
    1 0 0 0 0 0
    -1
    0
    
    예상 출력
    Maze #1 can be travelled
    Maze #2 cannot be travelled
    
  2. 예제 2

    입력
    2
    5 5 5 5
    -1
    0
    
    예상 출력
    Maze #1 can be travelled
    
  3. 예제 3

    입력
    2
    0 0 1 1
    -1
    0
    
    예상 출력
    Maze #1 cannot be travelled