Cod sursa(job #477281)

Utilizator barneystinsonBarney barneystinson Data 14 august 2010 01:40:20
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>
#include <vector>
#include <deque>
#define N_MAX 100005
using namespace std;

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

vector <int> graf[N_MAX];

deque <int> c;

int N,M,S,dist[N_MAX];

void bfs(){
	
	dist[S]=0;
	c.push_back(S);
	int size,son;
	while(!c.empty()){
		size=graf[c[0]].size();
		for(int i=0;i<size;i++){
			son=graf[c[0]][i];
			if(dist[son]==-1){
				dist[son]=dist[c[0]]+1;
				c.push_back(son);
			}
		}
		c.pop_front();
	}
}

int main(){
	
	fscanf (f,"%d %d %d",&N,&M,&S);
	int nod,nod2;
	for(int i=1;i<=M;i++){
		fscanf(f,"%d %d",&nod,&nod2);
		graf[nod].push_back(nod2);
	}
	
	memset(dist,-1,sizeof(dist));
	bfs();
	
	fclose(f);
	fclose(g);
	return 0;
}