top of page

소스 코드 제출

공개·회원 52명

250523

/*

#include <stdio.h>

int arr[200][200]={}, arr2[200][200]={};

int n, h, sum=0, som=0;

void dfs(int k, int p)

{

printf("d(%d, %d)\n", k, p);

if(k<1

||p<1||k>h||p>n||arr[k][p]==1)

{

return;

}

arr[k][p]=1;

dfs(k+1, p);

dfs(k-1, p);

dfs(k, p+1);

dfs(k, p-1);

}

void dfs2(int k, int p)

{

if(k<1||p<1||k>h||p>n||arr2[k][p]==0)

{

return;

}

arr2[k][p]=0;

dfs(k+1, p);

dfs(k-1, p);

dfs2(k, p+1);

dfs2(k, p-1);

}

int main()

{

int i, j;

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

for(i=0;i<h;i++)

{

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

{

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

arr2[i][j]=arr[i][j];

}

}

for(i=0;i<h;i++)

{

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

{

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

{

dfs(i, j);

sum++;

printf("------dfs(%d, %d)\n", i, j);

}

else if(arr2[i][j]==1)

{

dfs2(i, j);

som++;

// printf("------dfs2(%d, %d)\n", i, j);

}

}

}

printf("%d %d", sum, som);

return 0;

}

*/

#include<stdio.h>

int arr[300][300]={}, count[100]={};

int som=0, n, m;

void dfs(int k, int p)

{

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

{

return;

}

count[som]++;

arr[k][p]=1;

dfs(k+1, p);

dfs(k-1, p);

dfs(k, p-1);

dfs(k, p+1);

}

int main()

{

int e, k, a1, b1, c2, d2, i, j, sum=0;

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

for(i=0;i<e;i++)

{

scanf("%d %d %d %d", &a1, &b1, &c2, &d2);

for(j=b1;j<d2;j++)

{

for(k=a1;k<c2;k++)

{

arr[j][k]=1;

}

}

}

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

{

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

{

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

{

dfs(i, j);

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

som++;

}

}

}

printf("%d", som);

return 0;

}

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