Pagini recente » Cod sursa (job #1223756) | Cod sursa (job #1795210) | Cod sursa (job #1569810) | Cod sursa (job #597083) | Cod sursa (job #2388583)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
#define NMAX 100001
struct poz{
int val,i;
}aux,aux1;
vector <int>v[NMAX];
queue <poz>q;
int cnt,X;
bool seen[NMAX];
void bfs(int i){
aux.i=X;
aux.val=0;
q.push(aux);
while(!q.empty()){
aux=q.front();
seen[aux.i]=1;
if(aux.i==i){
out<<aux.val<<" ";
return ;
}
q.pop();
for(int j=0;j<v[aux.i].size();j++){
if(!seen[v[aux.i][j]]){
aux1.i=v[aux.i][j];
aux1.val=aux.val+1;
q.push(aux1);
}
}
}
out<<-1<<" ";
return;
}
int main()
{
int n,m;
in>>n>>m>>X;
for(int i=1;i<=m;i++){
int x,y;
in>>x>>y;
v[x].push_back(y);
}
for(int i=1;i<=n;i++){
bfs(i);
while(!q.empty())
q.pop();
memset(seen,0,sizeof(seen));
}
return 0;
}