Pagini recente » Cod sursa (job #328565) | Cod sursa (job #2263275) | Cod sursa (job #963375) | Cod sursa (job #2797331) | Cod sursa (job #703579)
Cod sursa(job #703579)
#include<fstream>
#include<stdio.h>
#include<vector>
using namespace std;
#define maxn 100000
vector <int> A[maxn];
int G[maxn],V[maxn],S[maxn];
void bfs(int s)
{
int L,i,j;
L=1;
V[s]=0;
S[1]=s;
for(i=1 ; i <= L ; i++)
for(j=0 ; j< G[S[i]] ; j++)
if(V[A[S[i]][j]] == -1)
{
S[++L]=A[S[i]][j];
V[A[S[i]][j]]=V[S[i]]+1;
}
}
int main()
{
int n,m,start,j,k,i;
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>n>>m>>start;
for(i=1;i<=m;i++)
{
in>>j>>k;
A[j].push_back(k);
}
for(i=1;i<=n;i++)
{
G[i]=A[i].size();
V[i]=-1;
}
bfs(start);
for(i=1;i<=n;i++)
out<<V[i]<<" ";
}