Pagini recente » Cod sursa (job #3145306) | Cod sursa (job #60921) | Cod sursa (job #2809936) | Cod sursa (job #2344973) | Cod sursa (job #2323675)
#include <iostream>
#include <fstream>
using namespace std;
int arr[10000][10000];
int vizitat[10000];
int componente = 0;
void dfs(int nod, int noduri){
vizitat[nod] = 1;
for(int i=1;i<=noduri;i++){
if(vizitat[i] == 0 && arr[nod][i] == 1)
dfs(i, noduri);
}
}
int main()
{ //Citire si declaratii
int noduri, muchii, x, y;
ifstream fin;
fin.open("dfs.in");
fin>>noduri>>muchii;
for(int i=1;i<=muchii;i++){
fin>>x>>y;
arr[x][y] = 1;
arr[y][x] = 1;
}
fin.close();
//Apel dfs
for(int i=1;i<=noduri;i++){
if(vizitat[i] == 0){
componente+=1;
dfs(i, noduri);
}
}
ofstream fout;
fout.open("dfs.out");
fout<<componente;
}