삼색정리
시간 제한1초메모리 제한1024 MB
상하좌우로 이웃한 칸이 같은 색이 되지 않도록 R개의 빨강, G개의 초록, B개의 파랑 칸으로 N행 M열 격자를 칠할 수 있는지 판정하고, 가능하면 한 가지 색칠을 출력한다.
문제
다음 조건들에 부합하도록 행 열 격자판의 각 칸을 색칠해 보자.
- 빨간색 칸이 개, 초록색 칸이 개, 파란색 칸이 개여야 한다.
- 상하좌우로 이웃한 두 칸의 색은 서로 달라야 한다.
입력
첫째 줄에 격자판의 행의 개수와 열의 개수를 각각 나타내는 정수 , 이 공백으로 구분되어 주어진다.
둘째 줄에 사용 가능한 세 가지 색상의 개수 , , 가 공백으로 구분되어 주어진다.
출력
주어진 조건에 맞게 격자판을 색칠할 수 있다면 첫째 줄에 YES, 불가능하다면 NO를 출력한다.
색칠할 수 있다면 다음 줄에 걸쳐 색칠된 격자판을 출력한다. 그중 번째 줄 번째 문자로는 격자판의 행 열에 있는 칸이 빨간색이면 R, 초록색이면 G, 파란색이면 B를 출력한다.
가능한 방법이 여러 가지라면 그중 아무거나 출력한다.