Cod sursa(job #146720)
| Utilizator | Data | 2 martie 2008 00:44:30 | |
|---|---|---|---|
| Problema | Parcurgere DFS - componente conexe | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
long int t[100000],viz[100000],sol,i,j,x,y,n,m;
int main()
{ FILE *f=fopen("dfs.in","r"),
*g=fopen("dfs.out","w");
fscanf(f,"%ld%ld",&n,&m);
for(i=1;i<=n;i++) t[i]=i;
for(i=1;i<=m;i++)
{ fscanf(f,"%ld%ld",&x,&y);
if(t[x]!=t[y]) for(j=1;j<=n;j++) if(t[j]==t[y]) t[j]=t[x];
}
for(i=1;i<=n;i++)
if(!viz[t[i]]){ sol++; viz[t[i]]=1;}
fprintf(g,"%ld",sol);
fcloseall();
return 0;
}
