Pagini recente » Cod sursa (job #124699) | Cod sursa (job #101499) | Cod sursa (job #3260377) | Cod sursa (job #1789667) | Cod sursa (job #3122067)
#include <fstream>
#include <vector>
#include <cstring>
#include <queue>
using namespace std;
ifstream f(".in");
ofstream g(".out");
const int nMax=100001;
vector<int>G[nMax];
vector<int>viz(nMax,-1);
void bfs(int start){
queue<int>q;
q.push(start);
viz[start]=0;
while(!q.empty()){
int nod=q.front();
for(auto i:G[nod])
if(viz[i]==-1){
viz[i]=viz[nod]+1;
q.push(i);
}
q.pop();
}
}
int main(){
int n,m,s;
f>>n>>m>>s;
for(int i=1;i<=m;++i){
int x,y;
f>>x>>y;
G[x].push_back(y);
}
bfs(s);
for(int i=1;i<=n;++i)
g<<viz[i]<<" ";
return 0;
}