Cod sursa(job #1699485)

Utilizator foxy55Ana Dori foxy55 Data 7 mai 2016 14:37:59
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
/*
*/
#include<iostream>
#include<fstream>
using namespace std;
int n,g[102][102],m,pred[102],succ[102],k,nrc;
ifstream fin("ctc.in");
ofstream fout("ctc.out");
void citire()
{
    fin>>n>>m;

    int x,y;
    for(int i=1;i<=m;i++)
        {
            fin>>x>>y;
            g[x][y]=1;
        }
}
void df_succ(int nod)
{
    succ[nod]=nrc;

    for(int i=1;i<=n;i++)
        if(g[nod][i]==1&&!succ[i])
            df_succ(i);

}
void df_pred(int nod)
{
    pred[nod]=nrc;

    for(int i=1;i<=n;i++)
        if(g[i][nod]==1&&!pred[i])
            df_pred(i);

}
int main()
{
    citire();
    int i,j;
    nrc=1;
    for(i=1;i<=n;i++)

        if(!succ[i])
        {
            succ[i]=nrc;
            df_succ(i);
            df_pred(i);
            for(j=1;j<=n;j++)
                if(succ[j]!=pred[j])
                    succ[j]=pred[j]=0;
            nrc++;
        }


    fout<<nrc<<"\n";
    for(i=1;i<nrc;i++)
        {
            for(j=1;j<=n;j++)
                if(succ[j]==i)
                    fout<<j<<" ";
            fout<<"\n";


        }


    return 0;
}