Problem1078--지훈이의 인생게임

1078: 지훈이의 인생게임

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 19  Solved: 12
[Submit] [Status] [Web Board] [Creator:]

Description

게임을 좋아하는 지훈이는 프로그래밍 실습 시간에 교수님이 이야기한 "인생게임"을 듣고 이를 실행해보고자 한다.
실행을 위해 설치한 프로그램은 40x40의 제한된 크기에서 실행할 수 있는 프로그램이다.
그러나 게임이라고 하지만 이용자가 제어할 수 있는 것이 제한적이고 지켜 보기만 하는 특성에 금방 흥미를 잃은 지훈이는 다음 한 세대만 보고 프로그램을 종료하였다.

당신은 지훈이가 본 모습이 궁금해졌다. 
지훈이가 처음 입력했던 초기 값을 알려주면 지훈이가 본 인생게임 화면의 모습을 출력해보자. 

>- 존 호턴 콘웨이의 인생게임의 규칙 -<
각 세포는 죽어있거나 살아있는 두가지 상태중 한 가지 상태를 갖는다.
현재 세대의 세포들 전체의 상태가 다음 세대의 세포 전체의 상태를 결정하며 다음 세대에서 갖는 상태는 현재 자신의 상태와 이웃하는 여덟 개의 세포들 중 몇 개가 살아있는지만을 따지며 그 조건은 아래와 같다.

  1. 죽은 세포의 이웃 중 정확히 세 개가 살아있으면 그 세포는 살아난다('태어난다')
  2. 살아있는 세포의 이웃 중에 두 개나 세 개가 살아 있으면, 그 세포는 계속 살아 있는 상태를 유지하고, 이외에는 외로워서, 또는 숨이 막혀서 죽어버린다.

Input

첫줄에는 테스트케이스 T가 입력된다.(1<=T<=15)
두번째 줄 부터 지훈이가 입력한 20x20사이즈의 초기 값이 입력되며 살아있는 세포는 1, 죽어있는 세포는 0으로 표현한다.

한 줄의 빈칸을 두고 초기 값이 테스트 케이스 만큼 반복된다.

Output

<#T 2nd Generation>를 출력한 뒤(T는 테스트 케이스의 번호) 아랫줄에 지훈이가 본 인생게임의 화면을 출력하되 살아있는 세포는 1, 죽어있는 세포는 0으로 출력한다.

Sample Input Copy

2
0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1
1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0
0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1
1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 0 1
1 1 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0
0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0
0 0 0 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1
0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1
1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 1 0 1
0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1
1 0 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0
0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1
0 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 0
0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1
1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1
0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1
0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0
0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 0 0
0 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0
1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0

1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0
0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0
1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 1 0 0
1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1
1 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0
0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0
0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1
0 1 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0
0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0
0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0
1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0
1 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 1 1 1
0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0
1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0
0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0
1 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0
0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1

Sample Output Copy

<#1 2nd Generation>
1 0 0 0 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0
1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0
1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 1
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1
1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1
0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1
0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 1
1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1
1 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0
0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1
0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 1
0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1
0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0
1 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0
<#2 2nd Generation>
0 1 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
1 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0
1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1
1 1 0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1
0 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1
1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0
1 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 0 0 0
0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0
1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1
0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1
0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 0
1 0 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 0 0
1 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0
1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 0 0

HINT

교수님이 알려준 대로 그냥 만들면 된다.

Source/Category