시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
철수는 전등이 N × M 격자 모양으로 배치된 조명기구를 가지고 있다. 각 전등은 빨간색 또는 하얀색 중 하나이다. 조명감독인 철수는 다음 두 종류의 버튼으로 조명기구의 상태를 바꿀 수 있다.
예를 들어, 아래 (a)처럼 4 × 5 격자의 조명기구가 있다고 하자. 0은 하얀색, 1은 빨간색을 나타낸다. (a)에서 두 번째 행 버튼을 누르면 (b)가 되고, 이어서 두 번째 열과 네 번째 열 버튼을 동시에 누르면 두 열이 교환되어 (c)가 된다.
| ``` | ||
| 01001 | ||
| 10110 | ||
| 01110 | ||
| 10101 | ||
| ``` | ``` | |
| 01001 | ||
| 01001 | ||
| 01110 | ||
| 10111 | ||
| ``` | ``` | |
| 00011 | ||
| 00011 | ||
| 01110 | ||
| 11101 |
| (a) | (b) | (c) |
초기 전등 색과 목표 전등 색이 주어질 때, 행 버튼과 열 버튼을 사용해 초기 상태를 목표 상태로 바꾸는 연산 순서를 구하시오.첫째 줄에 조명기구의 행 수 N과 열 수 M이 공백으로 구분되어 주어진다.
다음 N개의 줄에는 초기 상태가 주어진다. 각 줄에는 해당 행의 전등 색을 나타내는 M개의 수가 주어진다.
그다음 N개의 줄에는 목표 상태가 같은 형식으로 주어진다.
각 수는 0 또는 1이다. 0은 하얀색, 1은 빨간색을 의미한다.
초기 상태를 목표 상태로 바꿀 수 없으면 첫째 줄에 -1을 출력한다.
바꿀 수 있다면, 첫째 줄에 사용할 연산 수 S를 출력한다. S는 행 버튼을 눌러 행의 색을 바꾸는 횟수 R과, 두 열 버튼을 동시에 눌러 열을 교환하는 횟수 C의 합이다.
이어서 S개의 줄에 연산을 수행할 순서대로 출력한다.
0 i로 출력한다.1 i j로 출력한다.하나의 행 버튼은 최대 두 번까지 누를 수 있고, 같은 두 열 버튼의 조합도 최대 두 번까지 누를 수 있다.
| (a) | (b) | (c) |
초기 전등 색과 목표 전등 색이 주어질 때, 행 버튼과 열 버튼을 사용해 초기 상태를 목표 상태로 바꾸는 연산 순서를 구하시오.