7124 : 생명 게임
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
콘웨이의 생명 게임(Conway's Game of Life) 규칙에 맞춰 N × M 격자의 상태 변화를 시뮬레이션하십시오.
각 칸은 살아있는 상태(1) 또는 죽은 상태(0)를 가집니다.
- 살아있는 칸(1)의 8방향 이웃 중 살아있는 이웃이 2개 미만이거나 4개 이상이면 사망합니다. 이웃이 2개 또는 3개면 생존합니다.
- 죽은 칸(0)의 8방향 이웃 중 살아있는 이웃이 정확히 3개면 다음 세대에 탄생(1)합니다.
이 규칙에 따라 K세대 후의 격자 상태를 출력하십시오.
[제약 조건]
• 입력되는 모든 수는 정수입니다.
각 칸은 살아있는 상태(1) 또는 죽은 상태(0)를 가집니다.
- 살아있는 칸(1)의 8방향 이웃 중 살아있는 이웃이 2개 미만이거나 4개 이상이면 사망합니다. 이웃이 2개 또는 3개면 생존합니다.
- 죽은 칸(0)의 8방향 이웃 중 살아있는 이웃이 정확히 3개면 다음 세대에 탄생(1)합니다.
이 규칙에 따라 K세대 후의 격자 상태를 출력하십시오.
[제약 조건]
• 입력되는 모든 수는 정수입니다.
입력 설명
첫째 줄에 세로 크기 N, 가로 크기 M, 진행 세대 수 K가 공백으로 구분되어 주어집니다. (1 ≤ N, M ≤ 50, 0 ≤ K ≤ 100)
둘째 줄부터 N개의 줄에 격자의 초기 상태(0 또는 1)가 공백으로 구분되어 주어집니다.
둘째 줄부터 N개의 줄에 격자의 초기 상태(0 또는 1)가 공백으로 구분되어 주어집니다.
출력 설명
K세대 후의 N × M 격자 상태를 0과 1이 공백으로 구분된 형태로 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3 3 1
0 1 0
0 1 0
0 1 0
출력 예시
COPY
복사되었습니다!
복사되었습니다!
0 0 0
1 1 1
0 0 0
도움
상태 변화는 모든 칸에 대해 "동시에" 일어나므로, 다음 세대의 격자를 담을 빈 2차원 배열을 먼저 만든 뒤 모든 계산이 완료되면 기존 격자를 대체해야 합니다.