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

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

루빅스 직사각형

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

요약
전체 행이나 열 뒤집기를 반복해 주어진 H×W 타일판을 정렬할 수 있는지 판정합니다.
난이도

어려움10점 중 8점

유형
수학, 조합론
정답자
아직 제출이 없습니다

문제

루빅스 큐브와 15 퍼즐을 합친 새 퍼즐이 나왔다. 판은 H×WH \times W 크기의 틀이고, 11부터 H×WH \times W까지의 수가 하나씩 적힌 타일이 빈틈없이 놓여 있다.

허용되는 동작은 한 행 전체를 뒤집거나 한 열 전체를 뒤집는 것뿐이다. 뒤집으면 그 행(또는 그 열)에 놓인 타일의 순서가 반대가 된다. 예를 들어 3번 행을 뒤집으면 3번 행의 타일 순서만 반대가 되고 다른 칸은 움직이지 않는다.

ii번 행 jj번 열에 (i−1)×W+j(i-1) \times W + j가 놓인 상태를 정렬된 상태라고 한다. 타일이 아무 순서로나 놓인 판이 주어질 때, 뒤집기를 여러 번 해서 정렬된 상태로 만들 수 있는지 판정하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 다음 줄부터 각 테스트 케이스가 주어진다.

각 테스트 케이스는 빈 줄로 시작한다. 그 다음 줄에는 퍼즐의 너비와 높이를 나타내는 두 정수 WW와 HH가 공백을 두고 주어진다 (1≤W,H≤1001 \le W, H \le 100). 이어지는 HH개의 줄에는 각각 WW개의 정수가 공백을 두고 주어지며, 그 행에 놓인 타일에 적힌 수를 왼쪽부터 차례대로 나타낸다.

출력

각 테스트 케이스마다 답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다. 퍼즐을 정렬된 상태로 만들 수 있으면 POSSIBLE을, 만들 수 없으면 IMPOSSIBLE을 출력한다.

예제2

  1. 예제 1

    입력
    4
    
    3 3
    1 2 3
    4 5 6
    9 8 7
    
    4 2
    1 2 3 4
    5 6 7 8
    
    4 4
    1 2 15 4
    8 7 11 5
    12 6 10 9
    13 14 3 16
    
    3 4
    1 2 4
    3 5 6
    7 8 9
    10 11 12
    
    예상 출력
    POSSIBLE
    POSSIBLE
    POSSIBLE
    IMPOSSIBLE
    
  2. 예제 2

    입력
    5
    
    1 1
    1
    
    4 1
    4 3 2 1
    
    4 1
    1 3 2 4
    
    1 5
    5
    4
    3
    2
    1
    
    1 5
    1
    2
    4
    3
    5
    
    예상 출력
    POSSIBLE
    POSSIBLE
    IMPOSSIBLE
    POSSIBLE
    IMPOSSIBLE