/*#include <stdio.h>
int main()
{
int a,s,i,sum=0,max=0;
for(i=1;i<=10;i++)
{
scanf("%d %d",&a,&s);
sum=sum-a+s;
if(max<sum)
{
max=sum;
}
}
printf("%d",max);
return 0;
}
4503 : 바이러스
주어진 그래프를 인접행렬 (노드의 연결 상태) 에 기록하고, 출력하기
*/
#include <stdio.h>
#include <string.h>
int arr[101][101]={}; //노드의 연결상태 저장 인접행렬
int visited[101]={}; // 방문했는지 저장 배열
int a;
void dfs(int x) //노드x에서 갈 수 있는 곳을 모두 가세요
{
//printf("%d->",x);
visited[x]=1; //방문했따!
for(int i=1;i<=a;i++) // 모든 노드를 확인
{
if(arr[x][i]==1 && visited[i]==0) // x와 연결 && 방문x 노드에서
{
dfs(i);
}
}
}
int main()
{
int s,d,f,sum,i,j;
scanf("%d",&a); // 노드 개수
scanf("%d",&s); //연결선 개수
for(i=1;i<=s;i++)
{
scanf("%d %d",&d,&f);
arr[d][f]=1;
arr[f][d]=1;
}
dfs(1); //1번 노드에서 dfs 하세요 (모든 연결된 노드를 방문하세요)
for(i=1;i<=a;i++)
{
sum=a-1;
}
printf("%d",sum);
// quiz1. 5번노드와 연결되어있는 노드를 모두 출력하세요
// for(i=1;i<=a;i++)
// {
// if(arr[5][i]==1)
// {
// printf("%d ",i);
// }
// }
// for(i=1;i<=a;i++)
// {
// for(j=1;j<=a;j++)
// {
// printf("%d ",arr[i][j]);
// }
// printf("\n");
// }
return 0;
}