Pagini recente » Cod sursa (job #48170) | Cod sursa (job #2468941) | Cod sursa (job #1231376) | Cod sursa (job #1718473) | Cod sursa (job #2850321)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dfs.in"); ofstream fout("dfs.out");
vector<int> viz;
vector<vector<int> > v;
int n;
void dfs(int x, int nrv) {
viz[x] = nrv;
for(int i = 0; i < v[x].size(); i++) {
if(!viz[v[x][i]])
dfs(v[x][i], nrv);
}
}
void read() {
int a, b;
int m;
fin >> n >> m;
v = vector<vector<int> >(n + 1);
viz = vector<int>(n + 1, 0);
for(int i = 1; i <= m; i++)
fin >> a >> b, v[a].push_back(b), v[b].push_back(a);
}
void solve() {
int nrv = 0; // la a cata comp conexa am ajuns
for(int i = 1; i <= n; i++) {
if(!viz[i])
nrv++, dfs(i, nrv);
}
fout << nrv;
}
void fclose() {
fin.close(), fout.close();
}
int main() {
read();
solve();
fclose();
return 0;
}