Pagini recente » Cod sursa (job #3282740) | Clasament simulare1003 | Cod sursa (job #2300968) | Autentificare | Cod sursa (job #928879)
Cod sursa(job #928879)
#include<iostream>
#include<fstream>
#define MAX 100001
using namespace std;
struct nod{
int data;
nod *next;
};
int viz[MAX];
nod *graf[MAX];
ifstream citire("dfs.in");
ofstream afisare("dfs.out");
int dfs(int x){
nod *p;
int nr;
viz[x]=1;
p=graf[x]->next;
while(p!=NULL){
if(viz[p->data]==0)
dfs(p->data);
p=p->next;
}
return 0;
}
int main(){
int noduri,muchii,i,y,x,nr=0;
citire>>noduri>>muchii;
nod *nou;
for(i = 1;i <= noduri; i++)
{
graf[i]=new nod;
graf[i]->next=NULL;
}
for(i = 1 ;i <= muchii ;i++){
citire>>x>>y;
nou=new nod;
nou->data=y;
nou->next=graf[x]->next;
graf[x]->next=nou;
nou=new nod;
nou->data=x;
nou->next=graf[y]->next;
graf[y]->next=nou;
}
for(i = 1; i <= noduri; i++)
// viz[i]=0;
for(i = 1; i <= noduri; i++)
if(viz[i]==0){
nr++;
dfs(i);
}
afisare<<nr;
return 0;
}