Pagini recente » Cod sursa (job #931631) | Cod sursa (job #458789) | Cod sursa (job #3323147) | Cod sursa (job #2443495) | Cod sursa (job #3358273)
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<vector<int>> adj;
vector<int> visited;
void dfs(int start)
{
stack<int> s;
s.push(start);
visited[start] = true;
while (!s.empty()) {
int node = s.top();
s.pop();
for (int next : adj[node]) {
if (!visited[next]) {
s.push(next);
visited[next] = true;
}
}
}
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
cin >> n >> m;
adj.resize(n);
visited.resize(n, false);
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
u--;
v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
int ans = 0;
for (int i = 0; i < n; i++) {
if (!visited[i]) {
dfs(i);
ans++;
}
}
cout << ans << '\n';
return 0;
}