Pagini recente » Cod sursa (job #1853203) | Cod sursa (job #2371753) | Cod sursa (job #1793329) | Cod sursa (job #361128) | Cod sursa (job #1259848)
#include <cstdio>
#include <cstring>
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
struct nod
{
int x;
nod *u;
};
typedef nod *pnod;
pnod v[100005];
int n, m, x, y, t, i, viz[100005];
void A(pnod &d, int x)
{
pnod p;
p = new nod;
p->x=x;
p->u=d;
d=p;
}
void DFS(int x)
{
viz[x]=1;
for(pnod p=v[x];p!=0;p=p->u)
if(!viz[p->x])
DFS(p->x);
}
int main()
{
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i=1;i<=m;i++)
{
scanf("%d%d", &x, &y);
A(v[x], y);
A(v[y], x);
}
for(i=1;i<=n;i++)
if(!viz[i])
{
t++;
DFS(i);
}
printf("%d", t);
return 0;
}