Pagini recente » Diferente pentru utilizator/mihnea.anghel intre reviziile 31 si 30 | Diferente pentru utilizator/stay_awake77 intre reviziile 43 si 42 | Cod sursa (job #2006025) | Cod sursa (job #1979984) | 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;
}