Cod sursa(job #1107960)

Utilizator mangeorgeman george mangeorge Data 15 februarie 2014 11:39:48
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include<fstream>
using namespace std;
typedef int stiva;
ifstream f("dfs.in");
ofstream g("dfs.out");
int m,n,a[20][20];
stiva st[20];
void initializare()
{
    f>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[i][j]=0;
}
void citire()
{
    f>>m;
    int i,j;
    for(int l=1;l<=m;l++)
    {
        f>>i>>j;
        a[i][j]=a[j][i]=1;
    }
}
void parcurgere()
{
    int viz[20],vf,c,pi,ps;
    vf=1;
    for(int i=1;i<=n;i++)
        viz[i]=0;
    viz[vf]=1;
    pi=ps=1;
    st[pi]=vf;
    while(pi<=ps)
    {
        c=st[pi];
    for(int j=1;j<=n;j++)
        if(a[c][j]==1&&viz[j]==0)
        {
            viz[j]=1;
            st[++ps]=j;
        }
    pi++;
    }
}
int afisare()
{
   int nr=0;
    for(int i=1;i<=n;i++)
    if(st[i]!=0)
        nr++;
    return nr;
}
int main()
{
    initializare();
    citire();
    parcurgere();
    int x=afisare();
    g<<x;
    return 0;
}