Cod sursa(job #799848)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 20 octombrie 2012 10:58:11
Problema Componente tare conexe Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.h>
#define dim 1000

int n,m,i,j,k,V[dim][dim],nr,a,b,Fr[dim],Z[dim][dim],ok;

FILE*f=fopen("ctc.in","r");
FILE*g=fopen("ctc.out","w");

void read(){
	fscanf(f,"%d%d",&n,&m);
	for(i=1;i<=m;i++){
		fscanf(f,"%d%d",&a,&b);
		V[a][b]=1;
	}
}

int main(){
	
	read();
	
	for(k=1;k<=n;k++){
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				if(i!=j&&V[i][k]&&V[k][j]){
					V[i][j]=1;
				}
			}
		}
	}
	
	for(i=1;i<=n;i++){
		ok=0;
		if(Fr[i])
			continue;
		Z[++nr][++Z[nr][0]]=i;
		for(j=1;j<=n;j++){
			if(V[i][j]&&V[j][i]){
				Z[nr][++Z[nr][0]]=j;
				Fr[j]=1;
			}
		}
	}
	
	fprintf(g,"%d\n",nr);
	for(i=1;i<=nr;i++){
		for(j=1;j<=Z[i][0];j++)
			fprintf(g,"%d ",Z[i][j]);
		fprintf(g,"\n");
	}
	
	return 0;
}