Pagini recente » Cod sursa (job #918830) | Cod sursa (job #2819784) | Cod sursa (job #22777) | Cod sursa (job #159273) | Cod sursa (job #269415)
Cod sursa(job #269415)
#include <fstream.h>
#define MAX 100001
ifstream in("dfs.in");
ofstream out("dfs.out");
struct NOD{ int info;
NOD *urm;} *VF[MAX];
int k,n,m,s[MAX],st[MAX],prim,ultim;
void init(){
int i;
for(i=1;i<=n;++i)s[i]=0;
}
void adauga(NOD *&prim,int y){
NOD *p;
p = new NOD;
p->info = y;
p->urm = prim;
prim = p;
}
void citire(){
int x,y;
in>>n>>m;
while(in>>x>>y){
adauga(VF[x],y);
adauga(VF[y],x);
}
}
void parcurge(int i){
NOD *q;
s[i] = k;
for(q=VF[i];q!=NULL;q=q->urm) if(!s[q->info])parcurge(q->info);
}
int main(){
citire();
for(int i=1;i<=n;++i)
if(!s[i]){
k++;
parcurge(i);
}
out<<k;
return 0;
}