Logo
(追記) (追記ここまで)

32137번 - 좋은 격자

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB168735750.000%

문제

$N \times N$ 크기의 격자가 주어진다. 이 격자의 각 칸에는 1ドル$이상 $N \times N$이하의 서로 다른 정수들이 1ドル$개씩 적혀있다. 어떤 격자의 1ドル$이 적힌 칸부터 시작해 상하좌우로 한 칸씩 움직이며 1ドル$부터 $N \times N$까지의 수를 차례대로 지나는 방법이 존재한다면 그 격자를 '좋은 격자'라고 하자. 주어진 격자에 다음의 시행을 원하는 만큼 할 수 있다.

  • 서로 다른 두 행을 골라 교환하거나 서로 다른 두 열을 골라 교환한다.

시행을 통해 주어진 격자를 좋은 격자로 만드는 것이 가능한지 판별하고 가능하다면 좋은 격자로 만들기 위해 필요한 시행의 최소 횟수를 구하여라.

입력

첫째 줄에 격자의 크기를 나타내는 정수인 $N$ 이 주어진다. $ (2 \leq N \leq 1\ 000)$

다음 $N$줄에는 정수가 $N$개씩 공백으로 구분되어 주어진다. $y+1$번째 줄의 $x$번째 수는 격자의 $y$행 $x$열에 적힌 수를 나타낸다. 이 수들은 1ドル$ 이상 $N \times N$ 이하의 서로 다른 정수임이 보장된다.

출력

첫째 줄에 좋은 격자로 만들기 위한 시행의 최소 횟수를 출력한다. 만약 좋은 격자를 만드는 것이 불가능하다면 -1을 출력한다.

제한

예제 입력 1

3
3 6 2
4 5 1
8 7 9

예제 출력 1

2

1행과 2행을 바꾼 후 1열과 2열을 바꾸면 좋은 격자가 된다.

노트

$a$행과 $b$행을 교환한다는 것은 1ドル\leq i \leq N$인 모든 정수 $i$에 대해 $a$행 $i$열과 $b$행 $i$열의 수를 교환한다는 것이다. 비슷하게 $a$열과 $b$열을 교환한다는 것은 1ドル\leq i \leq N$인 모든 정수 $i$에 대해 $i$행 $a$열과 $i$행 $b$열의 수를 교환한다는 것이다.

출처

Contest > BOJ User Contest > 피갤컵 > 제1회 피갤컵 F번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /