Pagini recente » Cod sursa (job #417140) | Cod sursa (job #933663) | Cod sursa (job #2625653) | Istoria paginii runda/icrisop/clasament | Cod sursa (job #2325206)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#define DIM 100002
using namespace std;
int pas[DIM];
vector<int> adj[DIM];
int n,m,s;
void bfs(int s)
{
queue<int> q;
q.push(s);
pas[s]=1;
while(!q.empty()) {
int u=q.front();
q.pop();
for(int i=0;i<adj[u].size();i++) {
int v=adj[u][i];
if(pas[v]<0)
pas[v]=pas[u]+1,q.push(v);
}
}
}
int main()
{
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int i, j;
int u, v;
fin>>n>>m>>s;
for (i=1; i<=m; i++)
{
fin>>u>>v;
adj[u].push_back(v);
}
bfs(s);
for(int i=1;i<=n;i++)
fout<<pas[i]-1<<" ";
return 0;
}