Pagini recente » Cod sursa (job #774878) | Cod sursa (job #2818499) | Cod sursa (job #1899675) | Cod sursa (job #894695) | Cod sursa (job #885923)
Cod sursa(job #885923)
#include<iostream>
#include<queue>
#include<vector>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
int main() {
ifstream vind("bfs.in");
int m,n,s,x,v;
vind>>n>>m>>s;
vector < vector<int> > a(n+1);
for(int i=1; i<=m; i++) {
vind>>x>>v;
a[x].push_back(v);
}
vind.close();
int r[n+1]; bool b[n+1]; queue<int> q;
for (int i=1; i<=n; i++) { r[i]=-1; b[i]=false;}
q.push(s); r[s]=0;
while (!q.empty()) {
v=q.front(); q.pop();
while (!a[v].empty()) {
x=a[v].back();
if (!b[x] && r[x]==-1) {q.push(x); r[x]=r[v]+1;}
a[v].pop_back();
} b[v]=true;
}
ofstream duc("bfs.out");
for(int i=1; i<=n; i++) { duc<<r[i]<<" ";}
duc.close();
return(0);
}