Pagini recente » Cod sursa (job #2408302) | Cod sursa (job #176499) | Cod sursa (job #2252605) | Cod sursa (job #1026054) | Cod sursa (job #2911950)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
void dfs(vector<vector<int>>& adj, vector<bool>& isViz, int k)
{
isViz[k] = true;
for(auto i : adj[k])
if(!isViz[i])
dfs(adj, isViz, i);
}
int main()
{
ifstream reader ("dfs.in");
ofstream writer ("dfs.out");
int n, m, s;
reader >> n >> m;
vector <bool> isViz(n + 1);
vector<vector<int>> adj(n + 1);
for(int i = 0; i < m; ++i)
{
int x, y;
reader >> x >> y;
adj[x].emplace_back(y);
adj[y].emplace_back(x);
}
int ntcmp = 0;
for(int i = 1; i <= n; ++i)
{
if(!isViz[i])
{
dfs(adj,isViz,i);
ntcmp++;
}
}
writer << ntcmp;
return 0;
}