Pagini recente » Profil chicu | Istoria paginii utilizator/banutraul123 | Istoria paginii utilizator/bradflorin | Cod sursa (job #2013566) | Cod sursa (job #556502)
Cod sursa(job #556502)
#include <cstdio>
#define MaxN 100010
struct nod{
int inf;
nod *urm;}*L[MaxN];
int N,M,s[MaxN],Nr;
void add(int x,int y)
{
nod *q=new nod;
q->inf=y;
q->urm=L[x];
L[x]=q;
}
void cit()
{
int i,x,y;
scanf("%d%d",&N,&M);
for(i=1;i<=M;i++)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
}
void dfs(int k)
{
nod *q=new nod;
s[k]=1;
for(q=L[k];q;q=q->urm)
if(!s[q->inf])
dfs(q->inf);
}
void solve()
{
int i;
Nr=0;
for(i=1;i<=N;i++)
if(!s[i])
{
Nr++;
dfs(i);
}
printf("%d\n",Nr);
}
int main()
{
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
cit();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}