Cod sursa(job #799535)

Utilizator marinutzacatana marina marinutza Data 19 octombrie 2012 11:48:59
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
struct nod
{
    int nr;
    nod *adr;
} *v[100010];
int ncc,ok[100010],i,n,m;
void citeste()
{
    int x,y;
    nod *p;
    f>>n>>m;
    for(int i=0;i<m;i++)
    {
        f>>x>>y;
        p=new nod;
        p->nr=y;
        p->adr=v[x];
        v[x]=p;
        p=new nod;
        p->nr=x;
        p->adr=v[y];
        v[y]=p;
    }
}
void dfs(int x)
{
    ok[x]=1;
    for(nod *p=v[x];p;p=p->adr)
    {
        if(ok[p->nr]==0)
        {
            dfs(p->nr);
        }
    }
}

int main()
{
    citeste();
    for(i=1;i<=n;i++)
    {
        if(ok[i]==0)
        {
            ncc++;
            dfs(i);
        }
    }
    g<<ncc;
    return 0;
}