Cod sursa(job #1006108)

Utilizator radu2004GOLD radu radu2004 Data 6 octombrie 2013 13:33:14
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
struct nod {int val;nod *urm;};
FILE *f,*g;
int n,m,use[100001],x,y,i,nr;
nod *v[100001];
using namespace std;
void add (int x,int y)
{
    nod *t;
    t=new nod;
    t->val=y;
    t->urm=v[x];
     v[x]=t;
     t=new nod;
     t->val=x;
     t->urm=v[y];
     v[y]=t;
}
void df (int r)
{
    nod *t;
    for (t=v[r];t!=NULL;t=t->urm)  if (use [t->val]==0) {
                                                          use[t->val]=1;
                                                          df (t->val);

                                                         }


}
int main()
{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",&x,&y);
                      add (x,y);
 }

 for (i=1;i<=n;i++) if (use[i]==0) {use[i]=1;
                                    nr++;
                                    df (i);}
 fprintf (g,"%d",nr);

return 0;
}