Pagini recente » Cod sursa (job #2667335) | Cod sursa (job #2817257) | Cod sursa (job #2480623) | Cod sursa (job #2075804) | Cod sursa (job #1126644)
#include <cstdio>
using namespace std;
struct graf
{
int x;
graf *y;
};
graf *a[100001];
short b[100001];
void bag(int x, int y)
{
graf *q = new graf;
q->x = y;
q->y = a[x];
a[x] = q;
}
void parcur(int i)
{
b[i]=1;
while(a[i]!=NULL)
{
if(b[a[i]->x]==0) parcur(a[i]->x);
a[i]=a[i]->y;
}
}
int main()
{
int i,n,m,x,nr;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<m;++i)
{
scanf("%d%d",&x,&nr);
bag(x,nr);
bag(nr,x);
}
nr=0;
for(i=1;i<=n;++i)
if(b[i]==0)
{
++nr;
parcur(i);
}
printf("%d\n",nr);
return 0;
}