////#include <stdio.h>
////#include <stdlib.h>
////
////int main()
////{
//// int a, y, x, arr[101][101]= {0}, i, j;
//// scanf("%d", &a);
//// scanf("%d %d", &x, &y);
////
//// arr[x][y]=1;
////
//// for(i=x; i>=1; i--)
//// {
//// arr[i][y]=arr[i+1][y]+1;
//// }
//// for(i=x+1; i<=a; i++)
//// {
//// arr[i][y]=arr[i-1][y]+1;
//// }
//// for(i=a; i>=1; i--)
//// {
//// for(j=1; j<=y; j++)
//// {
//// arr[i][y-j]= arr[i][y-j+1]+1;
//// }
//// }
//// for(i=a;i>=1;i--)
//// {
//// for(j=y+1;j<=a;j++)
//// {
//// arr[i][j]=arr[i][j-1]+1;
//// }
//// }
////
//// for(i=1; i<=a; i++)
//// {
//// for(j=1; j<=a; j++)
//// {
//// printf("%d ", arr[i][j]);
//// }
//// printf("\n");
//// }
//// return 0;
////}
//#include<stdio.h>
//int main()
//{
// int arr[27][27]={0}, i, j, sum=0, a[27][27]={0};
// int x, y;
// for(i=1;i<=25;i++)
// {
// for(j=1;j<=25;j++)
// {
// scanf("%d", &arr[i][j]);
// }
// }
// for(i=1;i<=25;i++)
// {
// for(j=1;j<=25;j++)
// {
// sum=0;
// for(x=i-1; x<=i+1; x++) {
// for(y=j-1; y<=j+1; y++) {
// sum += arr[x][y];
// }
// }
//
// if(arr[i][j]==0)
// {
// if(sum==3)
// {
// a[i][j]=1;
// }
// }
// else if(arr[i][j]==1)
// {
// sum--;
// if(sum>=4||sum<=1)
// {
// a[i][j]=0;
// }
// else if(sum==2||sum==3)
// {
// a[i][j]=1;
// }
// }
//
// }
// }
// for(i=1;i<=25;i++)
// {
// for(j=1;j<=25;j++)
// {
// printf("%d ", a[i][j]);
// }
// printf("\n");
// }
//}
int main()
{
int a, b, k, z, x, sum=0, y, arr[180][180]={0}, ar[180][180]={0}, i, j, c, d, e;
scanf("%d %d", &a, &b);
scanf("%d %d %d", &x, &y, &z);
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
scanf("%d", &arr[i][j]);
}
}
scanf("%d", &k);
for(c=1;c<=k;c++) ////몇 세대인지
{
for(i=1;i<=a;i++) //한 판
{
for(j=1;j<=b;j++)
{
sum=0;
for(d=i-1;d<=i+1;d++)
{
for(e=j-1;e<=j+1;e++)
{
sum+=arr[d][e];
}
}
sum--;
printf("i.j = %2d.%2dsum = %d\n",i,j,sum);
if(arr[i][j]==0)
{
if(sum==x)
{
ar[i][j]=1;
}
}
else if(arr[i][j]==1)
{
if(sum>=y)
{
ar[i][j]=1;
}
else if(sum>=z)
{
ar[i][j]=0;
}
}
}
}
}
for(i=1;i<=a;i++)
{
for(j=1;j<=b;j++)
{
printf("%d ", ar[i][j]);
}
printf("\n");
}
}
1520, 1524, 1099, 1098
격자판의 크기 a*b가 입력됩니다.
주변에 x마리의 생명이 존재하면 생명이 탄생하고,
생명을 유지하기 위해선 최소 y명의 이웃이 있어야 되고,
z명 이상의 이웃이 있을 시 죽습니다.
한 세대가 지난 후에 생명이 있는 경우를 1, 없는 경우를 0으로 출력합니다.
k가 1이므로 1세대 지난 후