Cod sursa(job #1550912)

Utilizator andytosaAndrei Tosa andytosa Data 14 decembrie 2015 21:34:14
Problema Componente tare conexe Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
//#include <iostream>
#include <fstream>

using namespace std;
ifstream cin("ctc.in");
ofstream cout("ctc.out");
int a[110][110], viz[110], n, m, i, j, k;
int main()
{
    cin>>n>>m;
    for(k = 1; k <= m; ++k){
        cin>>i>>j;
        a[i][j] = 1;
    }

    for(k = 1; k <= n; ++k)
        for(i = 1; i <= n; ++i)
            for(j = 1; j <= n; ++j)
                if(a[i][j] == 0 && i != j && i != k && j != k)
                    a[i][j] = a[i][k] * a[k][j];

    int nr = 0;
    for(i = 1; i <= n; ++i)
        if(viz[i] == 0){
            nr++;
            viz[i] = nr;
            for(j = 1; j <= n; ++j)
                if(a[i][j] == 1 && a[j][i] == 1 && i != j)
                    viz[j] = nr;
        }
    cout<<nr<<'\n';
    for(i = 1; i <= nr; ++i){
        for(j = 1; j <= n; ++j)
            if(viz[j] == i)
                cout<<j<<" ";
        cout<<'\n';
    }
    return 0;
}