Cod sursa(job #1173508)

Utilizator icansmileSmileSmile icansmile Data 19 aprilie 2014 20:54:20
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include<fstream>
using namespace std;
ifstream f("dfs.in",ios::in);
ofstream g("dfs.out",ios::out);
struct nod{
       int info; nod* ad;};
nod *vf,*sf,*p;
int s[1000001],n,x,y,m,i;
nod *v[100001];
void adaugare(nod *&vf, nod *&sf, int nr)
{
     if(vf==0)
     {
              nod* p;
              p=new nod;
              p->info=nr;
              p->ad=0;
              sf=p;}
     else
     {
         nod* p;
         p=new nod;
         sf->ad=p;
         p->info=nr;
         p->ad=0;
         sf=p;}}
void citire()
{
     f>>n;
     f>>m;
     for(i=1;i<=m;i++)
     {
                      f>>x;
                      f>>y;
                      adaugare(v[x],sf,x);
                      adaugare(v[y],sf,y);}}
void df(int x)
{
     nod* p;
     s[x]=1;
     for(p=v[x];p!=NULL;p=p->ad)
     if(s[p->info]==0)
     df(p->info);}
int main()
{
    int c,i;
    citire();
    c=0;
    for(i=1;i<=n;i++)
    if(s[i]==0)
    {
               c++;
               df(i);
               }
    g<<c;
    return 0;}