Pagini recente » Cod sursa (job #1566786) | Cod sursa (job #2085666) | Cod sursa (job #1205897) | Cod sursa (job #2009242) | Cod sursa (job #2725514)
#include <fstream>
#include <vector>
using namespace std;
void dfs(vector<int> G[], int node, bool seen[]) {
seen[node] = true;
for (int ne: G[node])
if (!seen[ne])
dfs(G, ne, seen);
}
int main() {
ifstream f("dfs.in");
ofstream g("dfs.out");
int n, m, x, y, result = 0;
f >> n >> m;
vector<int> G[n + 1];
bool seen[n + 1];
for (int i = 1; i <= n; i++)
seen[i] = false;
for (int i = 0; i < m; i++) {
f >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
for (int i = 1; i <= n; i++)
if (!seen[i]) {
result++;
dfs(G, i, seen);
}
g << result;
f.close();
g.close();
return 0;
}