Pagini recente » Cod sursa (job #2326484) | Cod sursa (job #1656899) | Cod sursa (job #2192933) | Cod sursa (job #1240837) | Cod sursa (job #908710)
Cod sursa(job #908710)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f( "bfs.in" );
ofstream g( "bfs.out" );
int N,M,S,i,j,NrVec[100001];
int Coada[100001],Dist[100001],Total,X,Y;
vector <int> Vec[100001];
int main (){
f>>N>>M>>S;
for ( i=1;i<=M;i++ ) {
f>>X>>Y;
Vec[X].push_back(Y);
}
for ( i=1;i<=N;i++ ) {
NrVec[i]=Vec[i].size();
Dist[i]=-1;
}
Total=1;
Dist[S]=0;
Coada[1]=S;
for ( i=1;i<=Total;i++ )
for ( j=0;j<NrVec[Coada[i]];j++ )
if ( Dist[Vec[Coada[i]][j]]==-1 ) {
Dist[Vec[Coada[i]][j]]=Dist[Coada[i]]+1;
Coada[++Total]=Vec[Coada[i]][j];
}
for ( i=1;i<=N;i++ )
g<<Dist[i]<<" ";
}