Pagini recente » Cod sursa (job #239142) | Cod sursa (job #1001911) | Cod sursa (job #665454) | Cod sursa (job #1959483) | Cod sursa (job #2748889)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define forr(X) for(int i = 0; i<X; i++)
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
int n, m;
vector <int> a[100005];
int vis[100005];
int dfs(int x){
if(a[x][0]== -1) {
vis[x] =1;
return 0;
}
else if(vis[x] ==0){
vis[x] = 1;
for(int i=0; a[x][i] != -1; i++){
//cout<<1;
dfs(a[x][i]);
}
}
else return 0;
}
int main(){
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
cin>>n>>m;
int x, y;
for(int i = 1; i <= m; i++){
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
forr(n+1){
a[i].push_back(-1);
}
//cout<<a[1][0]<<" "<<a[2][0]<<endl;
int cnt = 0;
//cout<<"cnt: ";
for(int i =1; i<=n; i++){
if(vis[i] == 0){
cnt++;
dfs(i);
//cout<<cnt<<' ';
}
}
cout<<cnt;
}