Pagini recente » Cod sursa (job #1715136) | Cod sursa (job #2243591) | Cod sursa (job #2277994) | Cod sursa (job #918066) | Cod sursa (job #1784155)
#include <iostream>
#include <fstream>
#define _nu __null
#include <queue>
#include <vector>
#include <string.h>
using namespace std;
std::queue<int> c;
std::vector<int> v[100001];
int sol[100001];
bool vis[100001]= {0};
int main()
{
int i, j, n, m, np, a, b, pasi, nod, lg;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>np;
for(i=1; i<=m; i++)
{
f>>a>>b;
v[a].push_back(b);
}
c.push(np);
memset(sol, -1, sizeof(sol));
sol[np]=0;
vis[np]=true;
pasi=0;
while(!c.empty())
{
nod=c.front();
c.pop();
lg=v[nod].size();
for(i=0; i<lg; i++)
{
if(vis[v[nod][i]]==0)
{
c.push(v[nod][i]);
sol[v[nod][i]]=sol[nod]+1;
vis[v[nod][i]]=true;
}
}
}
for(i=1; i<=n; i++)
g<<sol[i]<<" ";
}