링크텍스트
#include <bits/stdc++.h>
using namespace std;
void dfs(vector <int> connected[],int v, bool visited[]){
visited[v] = true;
for(int i : connected[v]){
if (visited[i] == false){
dfs(connected,i,visited);
}
}
}
int main()
{
int n,m;
cin >> n>>m;
int a,b;
bool visited_dfs[n+1]={false};
vector <int> connected[n+1];
for(int i =0; i< m;i++){
cin >> a >>b;
connected[a].push_back(b);
connected[b].push_back(a);
}
for(int i=1;i<=n;i++) sort(connected[i].begin(),connected[i].end(),less<>());
int count =0;
for (int t=1;t<n+1;t++){
if (visited_dfs[t]==false){
count +=1;
dfs(connected,t,visited_dfs);
}
}
cout << count;
return 0;
}```