Cod sursa(job #275581)

Utilizator GagosGagos Radu Vasile Gagos Data 10 martie 2009 16:05:38
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include<stdio.h>      
typedef struct nod      
{      
    int inf;      
    nod * urm;      
} *pnod;      
pnod v[100001];      
int n,m,viz[100001],k;      
void add(pnod &p,int j)      
{      
    pnod q;      
    q=new nod;      
    q->inf=j;      
    q->urm=p;      
    p=q;      
}      
void read()      
{      
    int i,l,j;      
    scanf("%d %d",&n,&m);      
    for(l=1;l<=m;++l){      
        scanf("%d %d",&i,&j);      
        add(v[i],j);      
        //add(v[j],i);      
    }      
}      
void DFS(int x)      
{      
    pnod p;      
    viz[x]=1;      
    for(p=v[x];p!=NULL;p=p->urm)      
        if(!viz[p->inf])      
            DFS(p->inf);      
}
void DFS1 (int x)
{
	pnod p;
	viz[x]=1;
	printf("%d ",x);
	for(p=v[x];p!=NULL;p=p->urm)
		if(!viz[p->info])
			DFS(p->info);
}
int main()      
{
	int i;
    freopen("ctc.in","r",stdin);      
    freopen("ctc.out","w",stdout);      
    read();      
    for(i=1;i<=n;++i)      
        if(!viz[i]){      
            DFS(i);      
            k++;      
        }      
    printf("%d\n",k);
	for(i=1;i<=n;++i)
		viz[i]=0;
	for(i=1;i<=n;++i0{
		if(!viz[i])
			DFS1(i);
		printf("\n");
	}
    fcloseall();      
    return 0;      
}