Pagini recente » Borderou de evaluare (job #1661517) | Cod sursa (job #2657559) | Cod sursa (job #2605202) | Cod sursa (job #514900) | Cod sursa (job #2683402)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int const N_max = 1e5;
ifstream in ("dfs.in");
ofstream out ("dfs.out");
vector <int> adiacenta[ 1 + N_max];
int vizitat[ N_max];
void DFS( int nod)
{
vizitat[nod] = 1;
for ( int vec : adiacenta[nod])
if (vizitat[vec] == 0)
{
DFS(vec);
}
}
int main()
{
int n , m;
in >> n >> m;
for ( int i = 1; i <= m; i++ )
{
int x , y;
in >> x >> y;
adiacenta[x].push_back(y); /// x-> y
adiacenta[y].push_back(x); /// y -> x
}
int nr_c = 0;
for (int i = 1; i <= n; i++)
if (vizitat[i] == 0)
{
nr_c++;
DFS (i);
}
out << nr_c;
return 0;
}