Pagini recente » Cod sursa (job #2947391) | Cod sursa (job #1217984) | Cod sursa (job #3132680) | Cod sursa (job #1793310) | Cod sursa (job #3231057)
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int visited[100001];
void dfs(int node, vector<int> adj[]) {
visited[node] = 1;
for (auto neigh : adj[node])
if (visited[neigh] == 0)
dfs(neigh, adj);
}
int main() {
int n, m;
fin >> n >> m;
vector<int> adj[1000001];
for (int i = 1; i <= m; i++) {
int x, y;
fin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
int solution = 0;
for (int i = 1; i <= n; i++)
if (visited[i] == 0) {
solution++;
dfs(i, adj);
}
fout << solution;
}