Pagini recente » Cod sursa (job #2168911) | Cod sursa (job #2126958) | Borderou de evaluare (job #2156502) | Cod sursa (job #546704) | Cod sursa (job #3031804)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("dfs.in");
ofstream cout ("dfs.out");
vector < vector <int> > adiacenta;
int noduri , muchii , vizitat[100001];
void Parcurgere (int nod)
{
vizitat[nod] = 1;
for (auto nod_vecin : adiacenta[nod])
if (!vizitat[nod_vecin])
Parcurgere(nod_vecin);
}
int main ()
{
cin >> noduri >> muchii;
adiacenta.resize(noduri + 1);
int nod_1 , nod_2;
for (int indice = 1 ; indice <= muchii ; indice++)
cin >> nod_1 >> nod_2 , adiacenta[nod_1].push_back(nod_2) , adiacenta[nod_2].push_back(nod_1);
int componente_conexe = 0;
for (int nod = 1 ; nod <= noduri ; nod++)
if (!vizitat[nod])
Parcurgere(nod) , componente_conexe++;
cout << componente_conexe;
cout.close(); cin.close();
return 0;
}