| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 256 MB | 278 | 132 | 108 | 47.577% |
호반우 농장의 호반우들은 17세가 되면 농장의 미로처럼 생긴 길을 건너가는 풍습이 있다. 왜 그런 풍습이 만들어졌는지는 농부 존도 모른다. 호반우들은 길을 건너가고 싶으니까 건너갈 뿐이다.
농장의 미로는 격자 형태로 나타낼 수 있고 격자의 각 칸에는 양의 정수 하나가 적혀있다.
호반우들은 격자 제일 왼쪽 위에서 출발하여 오른쪽 아래에서 끝나는 경로로 이동한다.
이 때 한 번 방문했던 칸을 다시 방문해도 되며 현재 칸에서 가로 세로 대각선(8방향)으로 인접한 칸으로만 이동할 수 있다.
농부 존은 호반우들이 걸어가는 경로를 유심히 관찰하던 중 놀라운 사실을 발견했다. 바로 호반우들이 걸어가는 경로에 적혀있는 수들을 xor한 값은 항상 0이 된다는 사실이다.
더 자세하게는, 호반우들이 걸어가는 지점에 적힌 수를 a1, a2, ..., an 이라고 하면 a1 ⊕ a2 ⊕ ... ⊕an = 0 이다. (⊕는 xor을 나타내는 기호다.)
농부 존은 이러한 사실을 기반으로 호반우가 건너갈 길의 경로를 예측하려고 한다. 하지만 농부 존은 비트 연산에 약해서 경로를 예측하는 데 실패했다. 그를 도와 호반우가 갈 수 있는 길의 경로를 찾는 프로그램을 만들어주자!
호반우가 갈 수 있는 길이 여러가지 있을 경우 아무거나 출력한다.
또한 호반우는 최단거리로 이동하지 않아도 된다.
호반우가 항상 길을 건너갈 수 있음을 증명할 수 있다.
첫 번째 줄에 정수 N, M이 주어집니다. (2 ≤ N, M ≤ 1000)
N은 격자의 세로 크기, M은 격자의 가로 크기를 나타냅니다.
두 번째 줄 부터 N+1번째 줄 까지는 격자에 적힌 수가 공백으로 구분되어 주어집니다. (1 ≤ aij ≤ 109)
첫 번째 줄에 호반우가 방문한 칸의 개수 K를 출력합니다. 이 때 K가 2×(N+M)을 초과한 경우 오답으로 처리합니다.
두 번째 줄 부터 K+1번째 줄 까지는 호반우가 방문한 경로의 좌표를 나타내는 정수 y, x를 공백으로 구분하여 출력합니다.
2 3 1 3 5 1 2 6
6 0 0 0 1 0 2 1 1 0 1 1 2
이 경로에 포함된 숫자를 전부 xor하면 1 xor 3 xor 5 xor 2 xor 3 xor 6 = 0 이다.
시작 지점 (0, 0)과 끝 지점(1, 2)도 경로에 포함되고 한 지점을 여러번 방문할 수도 있음을 확인할 수 있다.
2 2 1 2 1 3
3 0 0 0 1 1 1
격자의 왼쪽 위가 0, 0 이고 오른쪽 밑이 N-1, M-1 입니다.
경로에는 시작 지점과 끝 지점이 포함되어야 합니다.
University > 경북대학교 > 2020 Goricon G번