Pagini recente » Cod sursa (job #2685050) | Cod sursa (job #1235846) | Cod sursa (job #2476157) | Cod sursa (job #1867946) | Cod sursa (job #2000532)
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
bool viz[100001];
struct nod
{
int inf;
struct nod *urm;
} *v[100001];
void adauga(int a,int b)
{
nod *p=new nod;
p->inf=b;
p->urm=v[a];
v[a]=p;
}
void dfs(int x)
{
viz[x]=1;
for(nod *step=v[x];step!=0;step=step->urm)
{
if(viz[step->inf]==0) dfs(step->inf);
}
}
int main()
{
int n,m,a,b,i,nr=0;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b;
adauga(a,b);
adauga(b,a);
}
for(i=1;i<=n;i++)
{
if(viz[i]==0)
{
nr++;
dfs(i);
}
}
fout<<nr;
}