https://codeup.kr/problem.php?id=1520
#include <cstdio>
int arr[2000][2000];
int arr_[2000][2000];
int gx[2000][2000];
int n,m,x,y,z;
int f(int i, int j)
{
return arr[i-1][j]+arr[i-1][j-1]+arr[i-1][j+1]+arr[i][j-1]+arr[i][j+1]+arr[i+1][j]+arr[i+1][j-1]+arr[i+1][j+1];
}
int re()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(arr[i][j]==1)
{
if(f(i,j)>=y&&f(i,j)<z)
{
arr_[i][j]=1;
}
else{
arr_[i][j]=0;
}
}
else{
if(f(i,j)==x)
{
arr_[i][j]=1;
}
else{
arr_[i][j]=0;
}
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<m;j++)
{
arr[i][j]=arr_[i][j];
}
}
}
int last()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(arr[i][j]==1)
{
if(f(i,j)>=y&&f(i,j)<z)
{
gx[i][j]=1;
}
else{
gx[i][j]=0;
}
}
else{
if(f(i,j)==x)
{
gx[i][j]=1;
}
else{
gx[i][j]=0;
}
}
}
}
}
int main(){
int k;
scanf("%d %d %d %d %d",&n,&m,&x,&y,&z);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&arr[i][j]);
}
}
scanf("%d",&k);
for(int i=1;i<k;i++)
{
re();
}
last();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
printf("%d ",gx[i][j]);
}
printf("\n");
}
return 0;
}
이 코드를 넣으면 실행 중 에러가 뜨네...
배열 범위도 문제 있을까 해서 일부러 더 크게 잡았는데, 뭐가 문제일까?