Cod sursa(job #1073200)

Utilizator koroalinAlin Corodescu koroalin Data 5 ianuarie 2014 19:39:22
Problema Componente tare conexe Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#define NMAX 101
using namespace std;
ifstream fin("ctc.in");
ofstream fout("ctc.out");
int n,m,a[NMAX][NMAX],uz[NMAX],nr,c[NMAX],sol[2*NMAX],k,prec[NMAX];
void citire();
void DFS(int x);
void BFS(int x);
void drumuri();
int main()
{
    citire();
    drumuri();
    for (int i=1; i<=n; i++)
    {
        if (!uz[i])
        {
            nr++;
            for (int j=1; j<=n; j++)
            {
                if (a[i][j] && a[j][i])
                uz[j]=nr;
            }
           // uz[i]=nr;
        }
    }
    fout<<nr<<'\n';
    for (int i=1; i<=nr; i++)
    {
        for (int j=1; j<=n; j++) if (uz[j]==i) fout<<j<<' ';
        fout<<'\n';
    }
    return 0;
}
void citire()
{
    int ei,ef;
    fin>>n>>m;
    for (int i=0; i<m; i++)
    {
        fin>>ei>>ef;
        a[ei][ef]=1;
        //a[ef][ei]=1;
    }
    for (int i=1; i<=n; i++) a[i][i]=1;
}
void drumuri()
{
    for (int k=1; k<=n; k++)
        for (int i=1; i<=n; i++)
            for (int j=1; j<=n; j++)
                if (a[i][k] && a[k][j]) a[i][j]=1;
}