만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

허용 가능한 좌석 배치

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

요약
각 행에서 키가 왼쪽에서 오른쪽으로 증가하는 상태를 유지하면서, 원래 좌석 배치를 목표 배치로 바꾸는 교환 순서를 찾습니다.
난이도

어려움10점 중 8점

유형
행렬, 시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

찰리는 교실을 관리한다. 교실의 좌석은 행과 열로 이루어진 격자 모양으로 배치되어 있다. 학생마다 키가 서로 다르다.

학생들을 좌석에 배정한 상태가 허용 가능하려면 다음 조건을 만족해야 한다:

  • 각 학생은 정확히 하나의 좌석에 배정된다.
  • 각 행에서 학생들은 왼쪽에서 오른쪽으로 키가 증가하는 순서로 앉는다.

학생들은 처음에 허용 가능한 배치로 앉아 있다. 찰리는 학생들을 다른 허용 가능한 배치로 바꾸고 싶어 한다. 그 배치는 처음 배치와 모든 좌석이 다를 수도, 일부만 다를 수도 있다. 이를 위해 두 학생을 맞바꿀 수 있다. 다만 매번 맞바꾼 뒤에도 배치가 허용 가능한 상태를 유지해야 한다.

학생들을 처음 배치에서 찰리가 원하는 배치로 옮기는 전략을 찾는 것을 도와라. 교환 횟수를 최소로 할 필요는 없지만, 교환은 최대 10410^4번까지만 할 수 있다.

입력 조건을 만족하는 모든 입력에 대해 이것이 항상 가능하다는 것이 증명되어 있다.

입력

첫째 줄에 두 정수 rr과 cc(1≤r,c≤201 \le r,c \le 20)가 주어진다. 찰리의 교실에는 rr개의 행과 cc개의 열로 된 좌석이 있다.

다음 rr개 줄에는 각각 cc개의 정수 hh(1≤h≤r⋅c1 \le h \le r \cdot c)가 주어진다. 이는 처음 배치에서 각 행에 앉은 학생들의 키다. 키는 모두 서로 다르며, 배치는 허용 가능한 상태다.

그다음 rr개 줄에는 각각 cc개의 정수 hh(1≤h≤r⋅c1 \le h \le r \cdot c)가 주어진다. 이는 찰리가 원하는 배치에서 각 행에 앉은 학생들의 키다. 키는 모두 서로 다르며, 배치는 허용 가능한 상태다.

출력

첫 줄에 수행할 교환 횟수 kk(0≤k≤1040 \le k \le 10^4)를 출력한다.

이어서 처음 배치를 찰리가 원하는 배치로 바꾸는 kk번의 교환을 출력한다. 다음 kk개 줄에는 각각 네 정수 r1r_1, c1c_1, r2r_2, c2c_2(1≤r1,r2≤r1 \le r_1, r_2 \le r, 1≤c1,c2≤c1 \le c_1, c_2 \le c, (r1,c1)≠(r2,c2)(r_1, c_1) \ne (r_2, c_2))를 적는다. 이는 r1r_1행 c1c_1열의 학생과 r2r_2행 c2c_2열의 학생을 맞바꾼다는 뜻이다.

매 교환 후에도 배치는 허용 가능한 상태여야 한다. 입력 조건을 만족하는 모든 입력에 대해 10410^4번 미만의 교환으로 항상 가능하다는 것이 증명되어 있다.

예제1

  1. 예제 1

    입력
    2 3
    1 4 5
    2 3 6
    3 5 6
    1 2 4
    
    예상 출력
    4
    2 1 1 1
    2 2 1 1
    2 3 1 3
    2 3 1 2