Pagini recente » Cod sursa (job #1806694) | Cod sursa (job #709106) | Cod sursa (job #3188186) | Cod sursa (job #879471) | Cod sursa (job #1015520)
#include <fstream>
#include <vector>
using namespace std;
ifstream f ("dfs.in");
ofstream g ("dfs.out");
const int N=100001;
int n, m, viz[N];
vector <int> a[N];
void citire ()
{
f>>n>>m;
int x, y;
for (int i=1; i<=m; i++)
{
f>>x>>y;
a[x].push_back (y);
a[y].push_back (x);
}
}
void dfs (int x)
{
viz[x]=true;
for (int i=0; i<a[x].size(); i++)
{
if (!viz[a[x][i]]) dfs (a[x][i]);
}
}
void rezolva ()
{
int nr=0;
for (int i=1; i<=n; i++)
if (!viz[i])
{
dfs(i); nr++;
}
g<<nr<<'\n';
}
int main ()
{
citire ();
rezolva ();
return 0;
}