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

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

숫자 퍼즐

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

요약
가로와 세로가 모두 짝수인 격자에서 표시된 두 칸을 양 끝으로 모든 칸을 한 번씩 지나는 경로가 있는지 판정합니다.
난이도

보통10점 중 7점

유형
수학, 그래프
정답자
아직 제출이 없습니다

문제

숫자 퍼즐은 격자 위에 표시된 같은 숫자끼리 하나의 통로(선)로 이어 주는 퍼즐이다. 이 문제의 격자에는 숫자 11이 서로 다른 두 칸에 하나씩 적혀 있으며, 다음 조건을 모두 만족하는 선을 그을 수 있는지 판정한다.

  • 선은 끊기지 않는 하나의 통로이며, 여러 갈래로 갈라지거나 자기 자신과 교차하지 않는다.
  • 선은 격자의 모든 칸을 정확히 한 번씩 지난다.
  • 두 개의 11이 각각 선의 양 끝 칸에 온다.

즉, 각 칸을 정점으로 보고 상하좌우로 인접한 두 칸을 간선으로 이으면, 두 11이 놓인 칸을 양 끝점으로 하여 모든 칸을 한 번씩 지나는 경로가 존재하는지를 묻는 문제이다.

격자의 크기가 m×nm \times n일 때 mm과 nn은 모두 짝수이다.

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다.

각 테스트 케이스는 세 줄로 이루어진다. 첫째 줄에 격자의 행 수 mm과 열 수 nn이 공백으로 구분되어 주어진다 (2≤m,n≤1002 \le m, n \le 100, mm과 nn은 모두 짝수). 둘째 줄에 첫 번째 11의 위치가 행 번호 ii와 열 번호 jj로, 셋째 줄에 두 번째 11의 위치가 행 번호 aa와 열 번호 bb로 주어진다 (1≤i,a≤m1 \le i, a \le m, 1≤j,b≤n1 \le j, b \le n). 두 위치는 서로 다르다.

출력

각 테스트 케이스마다, 조건을 만족하는 선을 그을 수 있으면 11을, 그릴 수 없으면 −1-1을 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    2
    4 4
    2 2
    3 3
    6 6
    3 4
    4 4
    
    예상 출력
    -1
    1
    
  2. 예제 2

    입력
    3
    2 2
    1 1
    1 2
    2 2
    1 1
    2 2
    2 2
    1 2
    2 1
    
    예상 출력
    1
    -1
    -1
    
  3. 예제 3

    입력
    2
    2 4
    1 2
    2 2
    2 4
    1 1
    2 1
    
    예상 출력
    -1
    1