Cod sursa(job #276393)

Utilizator al3x3Alex Chindea al3x3 Data 11 martie 2009 09:41:02
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#define MAX 1000
int a[MAX][MAX], n, m, k=0;
int main()
{
 int k, i, j, x, y;
 FILE *fi=fopen("ctc.in", "r"), *fo=fopen("ctc.out", "w");
 fscanf(fi, "%d%d", &n, &m);

 for(i=1; i<=m; i++)
 {
  fscanf(fi, "%d%d", &x, &y);
  a[x][y]=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)) a[i][j]=a[i][k]*a[k][j];

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

 fprintf(fo, "%d\n", k-a[1][0]+1);
 for(j=a[1][0]; j<=k; j++)
  {
   for(i=1; i<=n; i++)
    if(a[i][0]==j) fprintf(fo, "%d ", i);
   fprintf(fo, "\n");
  }
 fclose(fi);
 fclose(fo);
 return 0;
}