Pagini recente » Cod sursa (job #1995804) | Cod sursa (job #359889) | Cod sursa (job #987677) | Cod sursa (job #332866) | Cod sursa (job #671475)
Cod sursa(job #671475)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
int n,m,S[100001],cc;
struct nod
{
int inf;
nod* next;
};
nod* LA[100001];
void add(int x, int y)
{
nod* n=new nod;
n->inf=y;
n->next=LA[x];
LA[x]=n;
n=new nod;
n->inf=x;
n->next=LA[y];
LA[y]=n;
}
void citire()
{
in>>n>>m;
int i,x,y;
for(i=1;i<=m;i++)
{
in>>x>>y;
add(x,y);
}
}
void dfs(int x)
{
nod* nc=LA[x];
while(nc)
{
int vecin=nc->inf;
if(S[vecin]==0)
{
S[vecin]=cc;
dfs(vecin);
}
nc=nc->next;
}
}
int main()
{
citire();
for(int i=1;i<=n;i++)
if(!S[i])
{
cc++;
dfs(i);
}
out<<cc;
return 0;
}