Cod sursa(job #1519333)

Utilizator Andrei66Andrei Rusu Andrei66 Data 7 noiembrie 2015 11:07:42
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

#define x first
#define y second
#define VM 100005
#define pb push_back
#define ppb pop_back
#define ll long long
#define pii pair<int, int>

using namespace std;

//don't forget to put input in the file!!!
ifstream f("dfs.in");
ofstream fout("dfs.out");

int n, m;
vector<int> g[VM];
bool viz[VM];

void dfs(int node){
	viz[node] = true;
	for(unsigned int i=0; i<g[node].size(); ++i){
		int vecin = g[node][i];
		if(!viz[vecin])	dfs(vecin);
	}
}
int main(){ 
	f>>n>>m;
	for(int i=1; i<=m; ++i){
		int x, y;
		f>>x>>y;
		g[x].pb(y);
		g[y].pb(x);
	}

	int cmcx = 0;
	for(int i=1; i<=n; ++i){
		if(!viz[i]){
			++cmcx;
			dfs(i);
		}
	}
	fout<<cmcx;

	return 0;
}