Pagini recente » Cod sursa (job #1735945) | Cod sursa (job #151293) | Cod sursa (job #1215155) | Cod sursa (job #1838229) | Cod sursa (job #335648)
Cod sursa(job #335648)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define nmax 100002
int N,M,S;
int sol[nmax];
int tmp[nmax];
vector <int> V[nmax];
void bf ()
{
int i=1; sol[S]=1;
tmp[0]=1; tmp[i]=S;
while (tmp[i])
{
for (vector<int>::iterator j=V[tmp[i]].begin(); j!=V[tmp[i]].end(); ++j)
if (!sol[*j])
{
tmp[++tmp[0]]=*j;
sol[*j] = sol[tmp[i]]+1;
}
i++;
}
}
int main ()
{
ifstream in("bfs.in");
ofstream out("bfs.out");
in>>N>>M>>S;
while (M--)
{
int a,b; in>>a>>b;
V[a].push_back(b);
}
bf();
for (int i=1; i<=N; ++i) out<<sol[i]-1<<' ';
return 0;
}