Cod sursa(job #1892167)

Utilizator AsttridMocanu Ada Astrid Asttrid Data 24 februarie 2017 19:28:45
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
const int oo=100002;
struct nod{int inf;
nod*urm;};
nod*L[oo];
int n,m,viz[oo],nrc;

inline void citire(){
in>>n>>m;
int i,x,y;
nod *p;
for(i=1;i<=m;i++)
{in>>x>>y;
p=new nod;
p->inf=y;
p->urm=L[x];
L[x]=p;
p=new nod;
p->inf=x;
p->urm=L[y];
L[y]=p;
}
}

inline void dfs(int x){
nod *q;
viz[x]=1;
for(q=L[x];q;q=q->urm)if(!viz[q->inf])dfs(q->inf);
}

inline void rez(){int i;
for(i=1;i<=n;++i)if(!viz[i]){++nrc;dfs(i);}
out<<nrc<<"\n";
}

int main(){
citire();
rez();
in.close();
out.close();
return 0;}