top of page

소스 코드 제출

공개·회원 50명

250711

#include <stdio.h>

int arr[1100][1100]= {}, queue[3][10000]= {}, v[1000]= {};

int back=-1, front=-1, n, m, p, q;

void push(int k, int p)

{

if(k<1||k>n||p>m||p<1|| arr[k][p]==1)/**/

{

return;

}

arr[k][p]=1;

back++;

queue[1][back]=k;

queue[2][back]=p;

}

int pop()

{

front++;

return queue[1][front];

}

int pup()

{

return queue[2][front];

}


int main()

{

int i, j, d=0, sum=0;

scanf("%d %d", &n, &m);


for(i=1; i<=n; i++)

{

for(j=1; j<=m; j++)

{

scanf("%d", &arr[i][j]);

}

}

for(i=1; i<=n; i++)

{

for(j=1; j<=m; j++)

{

if(arr[i][j]==1)

{

back++;

queue[1][back]=i;

queue[2][back]=j;

//printf("**BFS(%d, %d)**\n", i, j);

}

}

}

//////

while(back!=front)

{

d=0;

for(i=front+1;i<=back;i++)

printf("(%d, %d) ",queue[1][i],queue[2][i]);

printf("\n");

p=pop();

q=pup();

// printf("-BFS(%d, %d)\n", p, q);

push(p+1, q);

push(p, q+1);

push(p-1, q);

push(p, q-1);

sum++;


}

/*만약, 저장될 때부터 모든 토마토가 익어있는 상태이면 0 을 출력해야 하고, 토마토가 모두 익지는 못하는 상황이면 -1 을 출력해야 한다.*/

printf("%d", sum);


return 0;


}

4회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page