Pagini recente » Cod sursa (job #2883608) | Cod sursa (job #1942894) | Cod sursa (job #1747939) | Cod sursa (job #1206038) | Cod sursa (job #2785821)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
vector< vector <int>> edges;
vector <bool> viz;
void read() {
int n,m;
in>>n>>m;
edges.resize(n);
viz.resize(n);
for(int i=0; i<m; i++) {
int a,b;
in>>a>>b;
a--;
b--;
edges[a].push_back(b);
edges[b].push_back(a);
}
}
void dfs(int node) {
viz[node]=1;
for(auto next: edges[node])
if(!viz[next])
dfs(next);
}
int main() {
read();
int cnt=0;
for(int i=0; i<edges.size(); i++)
if(!viz[i]) {
dfs(i);
cnt++;
}
out<<cnt;
return 0;
}