Pagini recente » Cod sursa (job #1899317) | Cod sursa (job #2319794) | Cod sursa (job #2794033) | Cod sursa (job #2889718) | Cod sursa (job #2776676)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int maxN=100000;
vector <int> G[maxN+5];
int nr_noduri, nr_muchii, nr_cc;
bool vizitat[maxN+5];
void citire()
{
fin>>nr_noduri>>nr_muchii;
for(int i=1; i<=nr_muchii; i++)
{
int a, b;
fin>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
}
void dfs(int nod)
{
if(vizitat[nod])
return;
vizitat[nod]=1;
for(int i=0; i<G[nod].size(); i++)
dfs(G[nod][i]);
}
void solve()
{
for(int i=1; i<=nr_noduri; i++)
{
if(!vizitat[i])
{
dfs(i);
nr_cc++;
}
}
}
void afisare()
{
fout<<nr_cc<<'\n';
}
int main()
{
citire();
solve();
afisare();
return 0;
}