Pagini recente » Cod sursa (job #1852620) | Cod sursa (job #78918) | Cod sursa (job #2152047) | Cod sursa (job #24357) | Cod sursa (job #607928)
Cod sursa(job #607928)
#include <iostream>
#include <stdio.h>
#define max 100001
using namespace std;
struct art{int val; art *urm; }*q;
art *p[max],*aux;
int viz[max];
void dfs(int v)
{art *adr;
int pp;
viz[v]=1;
adr=p[v];
while(adr!=NULL){ pp=adr->val; if(viz[pp]==0)dfs(pp);}
}
int main()
{
FILE *f,*g;
int nc,a,b,m,n,i;
f=fopen("dfs.in","r");
g=fopen("dfs.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=m;i++)
{fscanf(f,"%d %d",&a,&b);
aux=new art;
aux->val=b;
aux->urm=p[a];
p[a]=aux;
aux=new art;
aux->val=a;
aux->urm=p[b];
p[b]=aux;
}
for(i=1;i<=n;i++)viz[i]=0;
for(i=1;i<=n;i++)
{
if(viz[i]==0){ dfs(i);
nc++;
}
}
fprintf(g,"%d",nc);
fclose(f);
fclose(g);
return 0;
}