Pagini recente » Cod sursa (job #2158968) | Arhiva de probleme | Statistici Claudiu Oprea (Claudiu27121992) | Cod sursa (job #1043259) | Cod sursa (job #2978445)
#include <fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n,m,x,y,viz[100002],start[100002],k,i,nrc;
struct nod
{
int vecin,leg;
}L[400002];
void dfs (int vf)
{
viz[vf]=1;
for(int i=start[vf];i!=0;i=L[i].leg)
{
int y=L[i].vecin;
if(viz[y]==0)
{
dfs(y);
}
}
}
int main()
{
fin>>n>>m;
k=0;
for(i=1;i<=m;i++)
{
fin>>x>>y;
k++;
L[k].vecin=y;
L[k].leg=start[x];
start[x]=k;
k++;
L[k].vecin=x;
L[k].leg=start[y];
start[y]=k;
}
nrc=0;
for(i=1;i<=n;i++)
{
if(viz[i]==0)
{
nrc++;
dfs(i);
}
}
fout<<nrc;
return 0;
}