동전 뒤집기
시간 제한1초메모리 제한1024 MB
0은 앞면, 1은 뒷면을 나타내는 N×N 격자가 주어질 때, 모든 동전을 앞면으로 만드는 직사각형 뒤집기 시행을 ceil((N+1)/2)^2개 이하로 출력한다.
문제
크기의 정사각형 격자에 동전들이 놓여 있다. 각 칸에는 동전이 하나씩 놓여있으며, 각 동전은 앞면 또는 뒷면이 위를 보고 있다. 다음의 시행을 최대 번 하여 모든 동전의 앞면이 위를 보게 하자.
- 네 정수 , , , 을 고른 후 , 를 만족하는 모든 순서쌍 에 대해 행 열에 있는 동전을 뒤집는다.
주어진 문제 조건에서 항상 가능함을 보일 수 있다. 단, 해당 시행의 횟수를 최소화할 필요는 없다.
입력
첫째 줄에 격자의 크기를 나타내는 정수 이 주어진다.
둘째 줄부터 번째 줄까지 동전의 상태를 나타내는 문자열이 주어진다. 번째 줄 번째 문자는 행 열에 있는 동전의 상태를 나타내고 앞면이 위를 향하도록 놓인 경우 0, 뒷면이 위를 향하도록 놓인 경우 1로 표시된다.
출력
첫째 줄에 시행의 횟수 를 출력한다.
둘째 줄부터 번째 줄까지 시행을 나타내는 네 정수 , , , 를 공백으로 구분해 출력한다.