Pagini recente » Cod sursa (job #1609002) | Cod sursa (job #2482095) | Cod sursa (job #2260072) | Cod sursa (job #2936091) | Cod sursa (job #467898)
Cod sursa(job #467898)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
vector<int> V[100010];
queue<int> Q;
int C[100010];
int Lg[100010];
int N,M,S,i,x,y;
int main()
{
in>>N>>M>>S;
while(M--)
{
in>>x>>y;
V[x].push_back(y);
Lg[x]++;
}
Q.push(S);
while(!Q.empty())
{
x = Q.front();
Q.pop();
for(i=0;i<Lg[x];i++)
{
if(!C[V[x][i]]&&V[x][i]!=S)
{
C[V[x][i]] = C[x] + 1;
Q.push(V[x][i]);
}
}
}
for(i=1;i<=N;i++)
{
if(i==S)
out<<"0 ";
else
if(C[i])
out<<C[i]<<' ';
else out<<"-1 ";
}
return 0;
}