Cod sursa(job #1181848)

Utilizator toncuvasileToncu Vasile toncuvasile Data 3 mai 2014 23:08:12
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
//Arbore partial de cost minim. Algoritmul Kruskal.
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

vector <int> L [100005];
int n,m;

void DFS(int i)
{
	if(L[i][0]==-1) return;
	int x=L[i][0];
	L[i][0]=-1;
	DFS(x);
	for(int j=1;j<L[i].size();j++){
		DFS(L[i][j]);
	}
}

int main()
{
	ifstream f("dfs.in");  //apm.in
	ofstream g("dfs.out");

	f >> n >> m;
	int x,y;
	for(int i=1;i<=m;i++){
		f >> x >> y;
		L[x].push_back(y);
		L[y].push_back(x);
	}

	

	int ct=0;
	
	for(int i=1;i<=n;i++){
		if(L[i].size()==0){
			ct++;
		}else if(L[i][0]!=-1){
				  ct++;
				  DFS(i);
			  }
	}
	
	g << ct;
	return 0;
}