Pagini recente » Profil M@2Te4i | Cod sursa (job #2577556) | Istoria paginii utilizator/sisi021 | Cod sursa (job #2445280) | Cod sursa (job #1430964)
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <vector>
using namespace std;
void dfs(int source, vector< vector<int> > &lista, int visited[]){
visited[source] = 1;
for(int i=0; i<lista[source].size(); i++)
if(visited[lista[source][i]] == 0)
dfs(lista[source][i], lista, visited);
}
int main()
{
int n,m,x,y;
ifstream in("dfs.in");
in >> n >> m;
vector< int > aux;
vector< vector <int> > lista(n+1, aux);
for(int i=0; i<m; i++){
in>>x>>y;
lista[x].push_back(y);
lista[y].push_back(x);
}
in.close();
x=0;
int visited[n+1];
for(int i=0; i<=n; i++)
visited[i] = 0;
for(int i=1; i<=n; i++){
if(visited[i] == 0){
dfs(i, lista, visited);
x++;
}
}
ofstream out("dfs.out");
out<<x;
out.close();
return 0;
}