Pagini recente » Cod sursa (job #456757) | Cod sursa (job #1919215) | Cod sursa (job #2027658) | Cod sursa (job #3283483) | Cod sursa (job #2646792)
#include <fstream>
#include <vector>
using namespace std;
int const maxM = 200000;
void dfs(vector<vector<int>> l, vector<bool> &viz, int pos);
int main() {
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m;
fin >> n >> m;
vector<vector<int>> l(n + 1);
for (unsigned int i = 1; i <= m; i++) {
int x, y;
fin >> x >> y;
l[x].push_back(y);
l[y].push_back(x);
}
int comp = 0;
vector<bool> viz(n + 1);
for (unsigned int i = 1; i <= n; i++) {
if (!viz[i]) {
dfs(l, viz, i);
comp++;
}
}
fout << comp;
return 0;
}
void dfs(vector<vector<int>> l, vector<bool> &viz, int pos) {
viz[pos] = true;
for (unsigned int i = 0; i < l[pos].size(); i++) {
if (!viz[l[pos][i]]) {
viz[l[pos][i]] = true;
dfs(l, viz, l[pos][i]);
}
}
}