Mai intai trebuie sa te autentifici.

Cod sursa(job #530855)

Utilizator Dana_2011D.M.Florescu Dana_2011 Data 8 februarie 2011 16:06:08
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include<fstream.h>
#include<stdio.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
typedef struct nod{
	int nr;
	nod *ante;
};
nod *l[1000],*p;
long n,m,i,j,mm,max;
int v[1000];
int init(){
	for(int i=1;i<=n;i++) v[i]=0;
	return 0;
}
int df(int k){
	nod *q;
	max++;
	q=l[k];
	v[k]=1;
	while(q){
		if(!v[q->nr])
			df(q->nr);
		q=q->ante;
	}
	return 0;
}
int main(){
	f>>n>>m;
	while(f>>i>>j){
       p=new nod;
       p->nr=i;
       p->ante=l[j];
	   l[j]=p;
	}
	ifstream f2("dfs.in");
	f2>>n>>m;
	while(f2>>i>>j){
		p=new nod;
		p->nr=j;
		p->ante=l[i];
		l[i]=p;
	}
	/*
	for(i=1;i<=n;i++){
		p=l[i];
		printf("%d ",i);
		while(p){
			printf("%d ",p->nr);
			p=p->ante;
		}
		printf("\n");
	}*/
    mm=0;
	for(i=1;i<=n;i++){
          init();
          v[i]=1;		  
		  max=0;
	      df(i);
          if(max>mm) 
			  mm=max;
	}
	g<<mm<<"\n";
	f2.close();
	f.close();
	g.close();
	return 0;
}