Cod sursa(job #1431131)

Utilizator julia11Julia Adela julia11 Data 9 mai 2015 00:24:49
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;


int n;

void bfs(int source, vector< vector<int> > lista, int dist[], int visited[]){
	visited[source] = 1;
	
	queue<int> q;
	q.push(source);
	
	int node;
	
	while(!q.empty()){
		node = q.front();
		q.pop();
		
		for(int i=0; i<lista[node].size(); i++){
			if(visited[ lista[node][i] ] == 0){
				q.push( lista[node][i] );
				dist[ lista[node][i] ] = dist[node] + 1;
			}
		}	
	}
	
	ofstream out("bfs.out");
	for(int i=1; i<=n; i++)
		out<<dist[i]<<" ";
	out.close();
}


int main(){

	ifstream in("bfs.in");
	
	int m,source;
	in>>n>>m>>source;
	
	cout<<n<<" "<<m<<" "<<source;

	vector< int > aux;   
    vector< vector <int> > lista(n+1, aux);
	
	int x,y;
    for(int i=0; i<m; i++){
    	in>>x>>y;
    	cout<<x<<" "<<y<<endl;
    	lista[x].push_back(y);
    }
    
    in.close();

	for(int i=1; i<=n; i++){
	cout<<i<<" : ";
		for(int j=0; j<lista[i].size(); j++){
			cout<<lista[i][j]<<" ";
		}
		cout<<endl;
	}
	
	int visited[n];
	int dist[n];
	
	for(int i=1; i<=n; i++){
		visited[i] = 0;
		dist[i] = -1;
	}

}