Pagini recente » Cod sursa (job #1787979) | Profil M@2Te4i | Diferente pentru preoni-2008/runda-2/solutii/grozavesti intre reviziile 5 si 3 | Profil deresuroberto | Cod sursa (job #358751)
Cod sursa(job #358751)
#include <fstream>
#include <vector>
using namespace std;
ifstream in; fstream 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);
// out<<i<<endl;
for (j=0; j<a[i].size (); j++) {
k=a[i].at (j);
// out<<"-> "<<k<<endl;
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;
}