Pagini recente » Statistici vladescualbert (VladescuAlbert) | Cod sursa (job #527618) | Cod sursa (job #854484) | Cod sursa (job #895960) | Cod sursa (job #1639295)
#include <queue>
#include <vector>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
const int Nmax = 100005;
int n, m, Use[Nmax];
vector <int> G[Nmax];
queue <int> Q;
void BFS()
{
while(!Q.empty())
{
int nod = Q.front(); Q.pop();
for(int i = 0; i < (int)G[nod].size(); i++)
{
int vecin = G[nod][i];
if(Use[vecin] == -1)
{
Use[vecin] = Use[nod]+1;
Q.push(vecin);
}
}
}
}
int main()
{
int nod;
f>>n>>m>>nod;
while(m--)
{
int x,y;
f>>x>>y;
G[x].push_back(y);
}
memset(Use,-1,sizeof(Use));
Q.push(nod);
Use[nod] = 0;
BFS();
for(int i = 1; i <= n; i++) g<<Use[i]<<' ';
g<<'\n';
return 0;
}