Cod sursa(job #1249739)

Utilizator serban.cobzacCobzac Serban serban.cobzac Data 27 octombrie 2014 13:29:41
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#define dmax 100005
using namespace std;
ifstream fin("ctc.in");
ofstream fout("ctc.out");

int d[dmax][dmax], n, m, nrCtc;
bool uz[dmax];

void citire();
void matrDrum();
void rez();

int main(){
    citire();
    matrDrum();
    rez();
    return 0;
}

void citire(){
    int x, y;
    fin>>n>>m;
    for(int i=1; i<=m; ++i){
        fin>>x>>y;
        d[x][y]=1;
    }
}

void matrDrum(){
    int i, j, k;
    for(i=1; i<=n; ++i) d[i][i]=1;
    for(k=1; k<=n; ++k)
        for(i=1; i<=n; ++i)
            for(j=1; j<=n; ++j)
                if(!d[i][j]) d[i][j]=d[i][k]&&d[k][j];
}

void rez(){
    int j;
    for(int i=1; i<=n; ++i)
        if(!uz[i]){
            uz[i]=1;
            fout<<++nrCtc<<": "<<i<<' ';
            for(j=1; j<=n; ++j)
                if(!uz[j] && d[i][j]==1 && d[j][i]==1){
                    uz[j]=1;
                    fout<<j<<' ';
                }
            fout<<'\n';
        }
    fout.close();
}