Pagini recente » Cod sursa (job #2672634) | Cod sursa (job #197489) | Cod sursa (job #3220090) | Cod sursa (job #2863559) | Cod sursa (job #2098163)
#include <iostream>
#include <fstream>
#define nmax 100005
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n,m,viz[nmax],cnt=0;
typedef struct nod
{
int val;
nod*urm;
}*p;
p pnod[nmax];
void adauga(int x, nod*&pp)
{
p q;
q=new nod;
q->val=x;
q->urm=pp;
pp=q;
}
void citire()
{
fin>>n>>m;
int i,x,y;
for(int i =1 ; i <= m ; i++)
{
fin>>x>>y;
adauga(y,pnod[x]);
adauga(x,pnod[y]);
}
}
void dfs(int node)
{
p w;
viz[node]=1;
for(w=pnod[node]; w!=NULL; w=w->urm)
{
if(!viz[w->val]) dfs(w->val);
}
}
int main()
{
citire();
for(int i =1; i <= n ; i ++)
if(!viz[i])
{
cnt++;
dfs(i);
}
fout<<cnt;
return 0;
}