Pagini recente » Cod sursa (job #3275943) | Cod sursa (job #1207974) | Cod sursa (job #636768) | Cod sursa (job #1253450) | Cod sursa (job #2221269)
#include <fstream>
std::ifstream cin("dfs.in");
std::ofstream cout("dfs.out");
#define maxn 100010
typedef struct nod{
nod* next;
int where;
}*GRAF;
int viz[maxn]={0},n,m;
GRAF g[maxn];
void add(GRAF &g,int val){
GRAF p=new nod;
p->where=val;
p->next=g;
g=p;
}
void dfs(int x){
viz[x]=1;
for(GRAF xd=g[x];xd;xd=xd->next)
if(!viz[xd->where])
dfs(xd->where);
}
int main()
{
int x,y,ans=0;
cin>>n>>m;
GRAF *it;
while(cin>>x>>y){
add(g[x],y);
add(g[y],x);
}
for(int i=1;i<=n;i++)
if(!viz[i]){
dfs(i);
ans++;
}
cout<<ans;
return 0;
}