Pagini recente » Cod sursa (job #375889) | Cod sursa (job #1096018) | Cod sursa (job #122815) | Cod sursa (job #3220442) | Cod sursa (job #1038475)
//VASS PETER 2013-11-21
//N M S
#include <vector>
#include <fstream>
#include <queue>
//#include <iostream>
using namespace std;
int main(){
ifstream ifs("bfs.in");
ofstream ofs("bfs.out");
int N,M,S;
ifs>>N>>M>>S;S--;
vector<vector<bool> > g(N,vector<bool>(N,false));
vector<int> o(N,-1);
for(int i=0;i<M;i++){
int x,y;
ifs>>x>>y;
g[x-1][y-1]=true;
}
queue<int> q;
q.push(S);
o[S]=0;
while(!q.empty()){
int f=q.front();
for(int i=0;i<N;i++){
if (g[f][i] && f!=i && S!=i){
g[f][i]=false;
g[i][f]=false;
q.push(i);
o[i]=o[f]+1;
}
}
q.pop();
}
for(int i=0;i<N;i++)
ofs<<o[i]<<" ";
}