Pagini recente » preONI 2005 runda #2 - solutii | Cod sursa (job #1928869) | Cod sursa (job #1406740) | Cod sursa (job #86860) | Cod sursa (job #1707366)
#include <stdio.h>
#include <vector>
using std::vector;
bool marked[100001];
vector <int> g[100001];
void dfs(int u)
{
vector <int> :: iterator it;
marked[u] = 1;
for(it = g[u].begin(); it != g[u].end(); ++it)
{
if(marked[*it] == 0)
dfs(*it);
}
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
int con = 0;
int n,m,i,n1,n2;
scanf("%d %d",&n,&m);
for(i = 1; i <= m; ++i)
{
scanf("%d %d",&n1,&n2);
g[n1].push_back(n2);
g[n2].push_back(n1);
}
for(i = 1; i <= n; ++i)
{
if(!marked[i])
{
++con;
dfs(i);
}
}
printf("%d ",con);
return 0;
}