Cod sursa(job #2102894)

Utilizator andrei32576Andrei Florea andrei32576 Data 9 ianuarie 2018 16:19:50
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;

int n,m,i,x,y,c;
int d[100005];
struct nod{
int x;
nod *urm;
};
nod *gr[100005];

ifstream f("dfs.in");
ofstream g("dfs.out");

void adaug(int x,int y)
{
    nod *p=new nod;
    p->x=y;
    p->urm=gr[x];
    gr[x]=p;
}

void dfs(int vf,int c)
{
    d[vf]=c;
    nod *q=new nod;
    for(q=gr[vf];q!=NULL;q=q->urm)
        if(d[vf]!=d[q->x]) dfs(q->x,c);
}

int main()
{
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        adaug(x,y);
        adaug(y,x);
    }

    c=1;
    for(i=1;i<=n;i++)
    {
        if(d[i]==0)
        {
            dfs(i,c);
            c++;
        }
    }

    c--;
    g<<c;

    f.close();
    g.close();
    return 0;
}