Pagini recente » Cod sursa (job #2142726) | Cod sursa (job #3266711) | Cod sursa (job #2947338) | Cod sursa (job #1867041) | Cod sursa (job #2717827)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n,i,viz[100010],m,k,j,x,nrc;
struct nod{
int info;
nod *urm;
};
nod *v[100010];
struct muchie{
int x,y;
};
muchie ma[110];
void muchie_noua(int x, int y)
{
nod *q;
q=new nod;
q->urm=v[x];
q->info=y;
v[x]=q;
q=new nod;
q->urm=v[y];
q->info=x;
v[y]=q;
}
void DFS(int x)
{
int k;
nod *q;
viz[x]=1;
q=v[x];
while(q!=NULL)
{
if(viz[q->info]==0)
DFS(q->info);
q=q->urm;
}
}
int main()
{
fin>>n>>m;
for(k=1; k<=m; k++)
{
fin>>i>>j;
muchie_noua(i,j);
}
nrc=1;
for(i=1; i<=n; i++)
{
if(viz[i]==0)
{
DFS(i);
nrc++;
}
}
fout<<nrc-1<<'\n';
return 0;
}