Pagini recente » Cod sursa (job #3364955) | Cod sursa (job #3364792) | Cod sursa (job #3366535) | Cod sursa (job #3366532) | Cod sursa (job #3366530)
#include <bits/stdc++.h>
using namespace std;
const string FILENAME = "dfs";
ifstream f(FILENAME + ".in");
ofstream g(FILENAME + ".out");
#define cin f
#define cout g
int n,m;
vector<int> gg[100001];
int cmp[100001];
int cnt = 1;
void dfs(int curr) {
cmp[curr] = cnt;
for(int x : gg[curr]) {
if(!cmp[x]) {
cmp[x] = cnt;
dfs(x);
}
}
}
int main() {
cin >> n >> m;
for(int i = 1; i <= m; ++i) {
int x,y;
cin >> x >> y;
gg[x].push_back(y);
gg[y].push_back(x);
}
for(int i=1; i <= n; ++i) {
if(!cmp[i]) {
dfs(i);
cnt++;
}
}
cout << cnt - 1 << '\n';
return 0;
}