Pagini recente » Istoria paginii runda/bac-calinush/clasament | Istoria paginii runda/ezpz01/clasament | Cod sursa (job #109040) | Cod sursa (job #557579) | Cod sursa (job #2003948)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
const int MAX = 100005;
bitset< MAX > used;
void dfs(int n, vector< vector< int > > &v) {
for(auto x : v[n]) {
if(used[x])
continue;
used[x] = true;
dfs(x, v);
}
}
int main() {
int n, m;
cin >> n >> m;
vector< vector< int > > v(n + 1);
for(int i = 1; i <= m; i ++) {
int x, y;
cin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
int sol = 0;
for(int i = 1; i <= n; i ++) {
if(used[i])
continue;
sol ++;
dfs(i, v);
}
cout << sol;
}