Pagini recente » Cod sursa (job #1071256) | Cod sursa (job #368440) | Cod sursa (job #2154751) | Cod sursa (job #1344649) | Cod sursa (job #1028396)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector<int> adiacenta[100015];
bool vizitat[100010] = {false};
int varfuri, muchii, conexe;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int citire() {
int from, to;
fin >> varfuri >> muchii;
for (int i = 0; i < muchii; i++) {
fin >> from >> to;
adiacenta[from].push_back(to);
adiacenta[to].push_back(from); //graful e neorientat
}
return 0;
}
int df(int inceput) {
vizitat[inceput] = true;
for(int& varf : adiacenta[inceput]) {
if (!vizitat[varf])
df(varf);
}
/* int size = adiacenta[inceput].size(), varf;
for (int i = 0; i < size; ++i) {
varf = adiacenta[inceput][i];
if (!vizitat[varf])
df(varf);
}*/
return 0;
}
int main(int argc, char const *argv[]) {
int componente = 0;
citire();
/*
for (int i = 0; i < varfuri; i++) {
vizitat[i] = false;
}*/
for (int varf = 0; varf < varfuri; varf++) {
if (!vizitat[varf]) {
df(varf);
componente++;
}
}
fout << componente;
return 0;
}