Pagini recente » Profil el_nucu | Profil loredana | Istoria paginii runda/ada13/clasament | Cod sursa (job #2017249) | Cod sursa (job #2003224)
#include <cstdio>
#include <vector>
using namespace std;
int viz[100005];
vector <int> G[100005];
void dfs(int u, int cc)
{
int v;
viz[u] = cc;
for(int j = 0; j < G[u].size(); j++)
{
v = G[u][j];
if(!viz[v])
{
dfs(v, cc);
}
}
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
int n, m, u, v, cc = 0;
scanf("%d%d", &n, &m);
for(int i = 1; i <= m; i++)
{
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
}
for(int i = 1; i <= n; i++)
{
if(!viz[i])
{
++cc;
dfs(i, cc);
}
}
printf("%d", cc);
return 0;
}