Cod sursa(job #900015)

Utilizator vandrei95Zamfir Vlad vandrei95 Data 28 februarie 2013 17:19:43
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include<fstream>
using namespace std;
int a[10001][10001];
int main()
{
    fstream f("dfs.in",ios::in), g("dfs.out",ios::out);
    int k,nrC=0, i,vf=1, j,n,m,st[50001],gasit,x,y,viz[10001]={0};
    f>>n>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        a[x][y]=a[y][x]=1;
    }

    do
    {
        nrC++;
        k=0;
        st[++k]=vf;
        viz[vf]=1;
        gasit=0;
        while(k>0)
        {
            vf=st[k];
            for(i=1;i<=n;i++)
                if(viz[i]==0&&a[vf][i]==1)
                {
                    viz[i]=1;
                    st[++k]=i;
                    break;
                }
            if(i>n)
                k--;
        }
        for(i=1;i<=n;i++)
            if(viz[i]==0)
            {
                gasit=1;
                vf=i;
            }
    }
    while(gasit==1);
    g<<nrC;
}