Cod sursa(job #2748885)

Utilizator alex.prohnitchiAlex Prohnitchi alex.prohnitchi Data 3 mai 2021 22:10:01
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#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++)
 
int n, m;
vector <int> a[100005];
int vis[100005];
 
void dfs(int x){
	if (vis[x])return;
	else if(vis[x]==0){
		vis[x]=1;
		for(auto it:a[x]){
			//cout<<1;
			dfs(it);
		}	
	}
	
}
 
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);
	}

	//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;
}