Pagini recente » Cod sursa (job #2744233) | Cod sursa (job #180902) | Cod sursa (job #347697) | Cod sursa (job #599128) | Cod sursa (job #1050082)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
vector<int>v[100001];
queue<int>Q;
int cost[100001];
void platime(int nod)
{
Q.push(nod);
while(!Q.empty())
{
int huh=Q.front();
for(int ji=0;ji<v[huh].size();++ji)
if(cost[v[huh][ji]]==-1)
{
Q.push(v[huh][ji]);
cost[v[huh][ji]] =cost[huh]+1;
}
Q.pop();
}
}
int main()
{
int n,m,nod,i,x,y;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>nod;
for(i=1;i<=m;++i)
{
f>>x>>y;
v[x].push_back(y);
}
for(i=1;i<=n;++i)
cost[i]=-1;
cost[nod]=0;
platime(nod);
for(i=1;i<=n;++i)
g<<cost[i]<<" ";
f.close();
g.close();
return 0;
}