Pagini recente » Cod sursa (job #960800) | Cod sursa (job #973298) | Cod sursa (job #605106) | Cod sursa (job #4888) | Cod sursa (job #667474)
Cod sursa(job #667474)
#include <fstream>
#include <queue>
#include <vector>
#define DN 100005
using namespace std;
int n,m,s,dst[DN];
vector<int> gr[DN];
queue<int> c;
int main() {
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(int i=1; i<=m; ++i) {
int a,b;
f>>a>>b;
gr[a].push_back(b);
}
for(int i=1; i<=n; ++i) dst[i]=-1;
dst[s]=0;
for(c.push(s);c.size(); c.pop()) {
int fr=c.front();
for(int i=0; i<gr[fr].size(); ++i) {
int fiu=gr[fr][i];
if(-1==dst[fiu]) {
dst[fiu]=dst[fr]+1;
c.push(fiu);
}
}
}
for(int i=1; i<=n; ++i) g<<dst[i]<<' ';
return 0;
}