Pagini recente » Cod sursa (job #1935362) | Cod sursa (job #1496696) | Cod sursa (job #670427) | Cod sursa (job #1147903) | Cod sursa (job #3145382)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int N_MAX = 1e5;
vector<int> adj[N_MAX];
bool visited[N_MAX]{};
void dfs(int node){
visited[node] = true;
for(auto neighbour: adj[node])
if(!visited[neighbour])
dfs(neighbour);
}
int main(){
int n, m, a, b;
fin >> n >> m;
for(int i = 0; i < m; ++i){
fin >> a >> b;
--a;
--b;
adj[a].push_back(b);
adj[b].push_back(a);
}
int componente = 0;
for(int node = 0; node < n; ++node)
if(!visited[node]){
++componente;
dfs(node);
}
fout << componente;
fin.close();
fout.close();
return 0;
}