Cod sursa(job #1447589)

Utilizator cristi68Barbu Cristian cristi68 Data 4 iunie 2015 19:48:42
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
int a[10000][10000],n,m,b[10000][10000],viz[10000],viz1[10000];
int val;
void dfs(int nod,int a[][10000],int viz[])
{int k;
viz[nod]=val;
 for(k=1;k<=n;k++)
    if((a[nod][k]==1)&&(viz[k]==0))
        dfs(k,a,viz);
}
using namespace std;

int main()
{int x,y,i;
ifstream fin("ctc.in");
ofstream fout("ctc.out");
fin>>n>>m;
for(i=1;i<=m;i++)
{fin>>x>>y;
a[x][y]=1;
b[y][x]=1;
}
for(int nod=1;nod<=n;nod++)
{if(viz[nod]==0)
    {val++;
        dfs(nod,a,viz);
        dfs(nod,b,viz1);
     for(int j=1;j<=n;j++)
         viz[j]=viz1[j];

    }
}
fout<<val<<endl;
for(i=1;i<=val;i++)
     {for(int j=1;j<=n;j++)
        if(viz[j]==i)
        fout<<j<<" ";
     fout<<endl;}


    return 0;
}