Pagini recente » Cod sursa (job #2057497) | Cod sursa (job #2057602) | Cod sursa (job #200515) | Cod sursa (job #2271114) | Cod sursa (job #755328)
Cod sursa(job #755328)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector<int> a[100001];
int p,n,m;
void read();
void solve();
int main()
{
read();
solve();
f.close();g.close();
return 0;
}
void read()
{
f>>n>>m>>p;
for (int i=1;i<=m;i++)
{
int l,c;f>>l>>c;
a[l].push_back(c);
}
}
void solve()
{
queue <int> que;int viz[100001]={0};
que.push(p);viz[p]=1;
while (!que.empty())
{
int aux=que.front(); que.pop();
for (int i=0;i<a[aux].size();i++)
if (!viz[a[aux][i]] )
{
viz[a[aux][i]]=viz[aux]+1;
que.push(a[aux][i]);
}
}
for (int i=1;i<=n;i++)
g<<viz[i]-1<<' ';
}