Pagini recente » Cod sursa (job #2297468) | Cod sursa (job #2969437) | Cod sursa (job #1942731) | Cod sursa (job #2045469) | Cod sursa (job #2610049)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int NMAX = 100005;
bool vizitat[NMAX] = {0};
vector <int> adiacent[NMAX];
int noduri;
void read(int &m)
{
fin >> noduri >> m; int x, y;
for(int i = 0; i < m; i++)
{
fin >> x >> y;
adiacent[x].push_back(y);
adiacent[y].push_back(x);
}
}
void DFS(int nod)
{
vizitat[nod] = 1;
for(unsigned int i = 0; i < adiacent[nod].size(); i++)
{
int vecin = adiacent[nod][i];
if(!vizitat[vecin])
DFS(vecin);
}
}
int main()
{
int muchii, conexe = 0;
read(muchii);
for(int i = 1; i <= noduri; i++)
if(!vizitat[i])
{
DFS(i);
conexe++;
}
fout << conexe;
return 0;
}