Cod sursa(job #243336)

Utilizator MciprianMMciprianM MciprianM Data 12 ianuarie 2009 18:41:45
Problema Componente tare conexe Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
using namespace std;
#define MAXN 300
int a[MAXN][MAXN];
int viz[MAXN];
int nrctc;
int main(){
  int n, m, k, i, j, x, y;
  ifstream f("ctc.in");
  f>>n>>m;
  for(i=0;i<m;i++){
    f>>x>>y;
    a[x][y]=1;
  }
  f.close();
  for(k=1;k<=n;k++)
    for(i=1; i<=n;i++)
      for(j=1;j<=n;j++)
        if(k!=i &&i!=j&&k!=j)
              if(a[i][k]&&a[k][j])
                a[i][j]=1;
  ofstream g("ctc.out");
  for(i=1;i<=n;i++){
    if(!viz[i]){
      nrctc++;
      viz[i]=nrctc;
      for(j=1;j<=n;j++)
        if(a[i][j]&&a[j][i])
          viz[j]=nrctc;
    }
  }
  g<<nrctc<<'\n';
  for(i=1;i<=nrctc;i++){
    for(j=1;j<=n;j++)
      if(viz[j]==i)
        g<<j<<' ';
    g<<'\n';
  }
  g.close();
  return 0;
}