Pagini recente » Cod sursa (job #951815) | Cod sursa (job #143403) | Cod sursa (job #304483) | Cod sursa (job #855669) | Cod sursa (job #2980595)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
const int N = 1e5;
vector<vector<int>> adj(N);
bool visited[N];
void dfs(int x) {
visited[x] = true;
for(auto y : adj[x]) {
if(!visited[y]) dfs(y);
}
}
int main() {
int n, m;
in >> n >> m;
vector<array<int, 2>> edges(m);
for(int i = 0; i < m; i++) {
in >> edges[i][0] >> edges[i][1];
edges[i][0]--, edges[i][1]--;
adj[edges[i][0]].push_back(edges[i][1]);
adj[edges[i][1]].push_back(edges[i][0]);
}
in.close();
int ans = 0;
for(int i = 0; i < n; i++) {
if(!visited[i]) {
ans++;
dfs(i);
}
}
out << ans << '\n';
out.close();
return 0;
}