top of page

소스 코드 제출

공개·회원 52명

250716

#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>m||p>n||p<1||arr[k][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, c=0;

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


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

{

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

{

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

}

}

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

{

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

{

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

{

c++;

back++;

queue[1][back]=i;

queue[2][back]=j;

}

}

}

if(c==m*n)

{

printf("0");

return 0;

}

while(back!=front)

{

d=0;

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

{

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

p=pop();

q=pup();

push(p+1, q);

push(p, q+1);

push(p-1, q);

push(p, q-1);

sum++;

}

}

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

{

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

{

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

{

d=1;

}

}

}

if(d==1)

{

printf("-1\n");

}

printf("%d", sum);

return 0;

}

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