Pagini recente » Cod sursa (job #732883) | Cod sursa (job #180664) | Cod sursa (job #2682550) | Monitorul de evaluare | Cod sursa (job #2007384)
#include <fstream>
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
#define Nmax 100001
vector<int> vec[Nmax];
//vector<int>::iterator it;
ifstream in("dfs.in");
ofstream out("dfs.out");
void dfs(bool vazut[Nmax],int nod)
{
vazut[nod] = true;
if(!vec[nod].empty())
{
for(auto it = vec[nod].begin(); it != vec[nod].end(); it++)
{
if( vazut[*it] == false)
dfs(vazut,*it);
}
}
}
int main()
{
int noduri , muchii;
in >> noduri >> muchii;
int x ,y;
int componente = 0;
bool vazut[Nmax];
for(int i = 1; i <= noduri;i++)
vazut[i] = false;
for(int i = 1 ;i <= muchii; i++)
{
in >> x >> y;
vec[x].push_back(y);
vec[y].push_back(x);
}
for(int i = 1;i <= noduri;i++)
{
if(vazut[i] == false)
{
componente++;
dfs(vazut,i);
}
}
out << componente;
return 0;
}