Pagini recente » Cod sursa (job #639416) | Cod sursa (job #408770) | Cod sursa (job #576946) | Statistici Paduraru Cristian Daniel (PaduraruCristian) | Cod sursa (job #358752)
Cod sursa(job #358752)
#include <fstream>
#include <vector>
using namespace std;
ifstream in; ofstream out;
vector <long> a[100001],c;
long b[100001],N,M,S;
int main () {
in.open ("bfs.in"); out.open ("bfs.out");
in>>N>>M>>S;
long i,j,k;
for (i=1; i<=M; i++) {
in>>j>>k;
a[j].push_back (k);
}
for (i=1; i<=N; i++) b[i]=-1;
c.push_back (S);
b[S]=0;
while (c.size ()) {
i=c.at (0);
for (j=0; j<a[i].size (); j++) {
k=a[i].at (j);
if (b[k]==-1) {
b[k]=b[i]+1;
c.push_back (k);
}
}
c.erase (c.begin (), c.begin ()+1);
}
for (i=1; i<=N; i++) out<<b[i]<<" ";
out<<"\n";
in.close (); out.close ();
return 0;
}