Pagini recente » Monitorul de evaluare | Profil mihaistamatescu | Cod sursa (job #311840) | Cod sursa (job #1318096) | Cod sursa (job #2917814)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
const int MAXN=200010;
vector <int> g[MAXN];
bool visit[MAXN];
int n,m;
void dfs (int nod){
visit[nod]=1;
for (int i=0;i<g[nod].size ();++i)
if (visit[g[nod][i]]==0)
dfs (g[nod][i]);
}
int main()
{
fin >>n>>m;
for (int i=1;i<=m;++i){
int x,y;
fin >>x>>y;
g[x].push_back (y);
g[y].push_back (x);
}
int rez=0;
for (int i=1;i<=n;++i){
if (visit[i]==0){
rez++;
dfs (i);
}
}
fout <<rez;
fin.close ();
fout.close ();
return 0;
}