Cod sursa(job #1995815)

Utilizator IulianaBinzarIuliana Binzar IulianaBinzar Data 29 iunie 2017 10:16:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <cstdio>
#include<queue>
#include <vector>

using namespace std;

int N,S,M;
vector<int> v[100003];
queue<int> q;
int dis[100003];

void bfs(int S){
	dis[S]=1;
	q.push(S);
	while(!q.empty()){
		int x=q.front();
		q.pop();
	    for(unsigned int i=0;i<v[x].size();i++)
	    	if(!dis[v[x][i]]){
	    		dis[v[x][i]]=dis[x]+1;
	    		q.push(v[x][i]);
			}
  }
}

int main(){
	freopen ("bfs.in","r",stdin);
	freopen ("bfs.out","w",stdout);
	scanf("%d%d%d",&N,&M,&S);
	for(int i=0;i<M;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		v[a].push_back(b);
	}
	
	bfs(S);

	for(int i=1;i<=N;i++)printf("%d ",dis[i]-1);
	
}